【发布时间】:2019-12-07 13:28:07
【问题描述】:
该函数必须将指定数组的每个元素投影到一个序列中,并将结果序列展平为一个数组。
我的函数必须根据给定的选择器函数 (childrenSelector) 返回展平数组,但在应用 slice() 函数时遇到问题。
当应用切片作为选择器函数时,它说
TypeError: x.slice 不是函数
function flattenArray(arr, childrenSelector) {
return arr.reduce((accumArr, currVal) => {
console.log(currVal);
return Array.isArray(currVal)
? accumArr.concat(currVal.map(childrenSelector))
: accumArr.concat(childrenSelector(currVal))
}, []
);
}
flattenArray([[11, 12, 13, 14, 15], [21, 22, ,23, 24, 25], [31, 32, 34, 35]], x => x.slice(0, 2))
这个问题有解决办法吗?
【问题讨论】:
-
想要的输出是什么?
-
那么,它应该先对每个子数组进行切片,然后将它们组合成一个平面数组?
标签: javascript arrays flatten