我正在阅读一本名为 Eloquent JavaScript 的书。在其中进行了一项练习,需要一个平坦的异构阵列和放大器。经过这么长时间没有得到答案后,我在网上找到了解决方案&无法理解代码。我希望有人会善意地解释,特别是对于争论而言#34; flat"以及它应该如何运作。代码在
之下var arrays = [[1, 2, 3], [4, 5], [6]];
console.log(arrays.reduce(function(flat, current) {
return flat.concat(current);
}, []));
答案 0 :(得分:0)
我已经实现了这个解决方案,这似乎也适用于嵌套数组。
function flattenArray(arr){
for(var i=0;i<arr.length;i++){
if(arr[i] instanceof Array){
Array.prototype.splice.apply(arr,[i,1].concat(arr[i]))
}
}
return arr;
}
答案 1 :(得分:0)
这是我随ES6格式一起提供的解决方案:
const reduced = arrays.reduce((result,array) => result.concat(array),[]);
console.log(reduced);