数据处理-多维数组彻底降维--数组降维

81 阅读1分钟
[1, [2], 3].flatMap(v => v)

// -> [1, 2, 3]

如果想将⼀个多维数组彻底的降维,可以这样实现

const flattenDeep = (arr) => Array.isArray(arr)
 ? arr.reduce( (a, b) => [...a, ...flattenDeep(b)] , [])
 : [arr]
flattenDeep([1, [[2], [3, [4]], 5]])

image.png

扩展

Array.isArray(object) 

参数
object:要检测的内容

返回值

返回值是[布尔]类型的。
如果传进来的object是[数组],返回true,如果不是数组,则返回false。

Array.isArray([1, 2, 3, 4]);  // --> true

var obj = {
    a: 1,
    b: 2
};
Array.isArray(obj);  // --> false
 
Array.isArray(new Array);  // --> true
 
Array.isArray("Array");  // --> false