• 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏吧

Javascript函数不能正确展平数组

JavaScript 来源:Dog 17次浏览

我把一个JavaScript函数放在一起,这个函数应该是拼合一个嵌套数组。但是,这种方法总是只返回原始数组。例如,使用以下数组[1, 2, 3, [4, 5, [6], [ ] ] ]运行此函数将只返回该数组。我知道有些方法可以使用reduce来做到这一点,但是阻止这种方法工作的逻辑原因是什么? .map应该允许我操作一个返回值并通过递归调用返回新数组中的数据。Javascript函数不能正确展平数组

function mapper(array) { 
    return array.map((item) => { 
     return (Array.isArray(item)) ? mapper(item) : item 
    } 
)} 


===========解决方案如下:

什么逻辑上的理由是防止这种方法从工作?

var m = [1, 2, 3, [4, 5, [6], []]]; 
function mapper(array) { 
     return array.map((item) => { 
      // for 1,2,3 it will return item 
      // when it sees an array it will again call mapper & map 
      // function will return a new array from it, so map on 
      // [4, 5, [6], []] will return a new array but will not take out 
      // individual element and will put it in previous array 

      return (Array.isArray(item)) ? mapper(item) : item 
     } 
    )} 
mapper(m) 

地图功能不发生变异原数组,但它会返回一个新的数组。


版权声明:本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系管理员进行删除。
喜欢 (0)