javascript:尝试将数组展平一级
我正在尝试编写一个函数来展平数组。我有一部分功能正在工作,另一半需要帮助javascript:尝试将数组展平一级,javascript,flatten,Javascript,Flatten,我正在尝试编写一个函数来展平数组。我有一部分功能正在工作,另一半需要帮助 flatten: function(anyArray, singleLevel) { if (singleLevel == true) { flatArray = Array.prototype.concat.apply([], anyArray); return flatArray; } flatArray = Array.prototype.concat.apply([], anyA
flatten: function(anyArray, singleLevel) {
if (singleLevel == true) {
flatArray = Array.prototype.concat.apply([], anyArray);
return flatArray;
}
flatArray = Array.prototype.concat.apply([], anyArray);
if (flatArray.length != anyArray.length) {
flatArray = someObject.array.flatten(flatArray);
}
return flatArray;
}
如果我打字
.flatten([[[1],[1,2,3,[4,5],4],[2,3]]], true);
我希望它只展平一层:
[[1],[1,2,3,[4,5],4],[2,3]]
需要一个或多个数组作为参数,其元素将被追加:
[1].concat([2, 3], [4]) // [1, 2, 3, 4]
因此,如果您正在使用,将使另一个级别变平:
[].concat.apply([1], [[2], [3]]) // === [1].concat([2], [3])
因此,您可以使用
push
而不是concat
,或call
(或直接调用)而不是apply
,只获得一个展平级别。如果您使用ES6/ES2015,您可以使用operator。像这样的
console.log(…[[1]、[1,2,3、[4,5]、[4]、[2,3]])
现代JavaScript允许我们使用各种技术非常轻松地处理这个问题
使用Array.prototype.flat
-
const-arr=
[ [ 1 ], [ 2, 3, [ 4, 5, [ 6 ] ] ], [ 7, [ 8, 9 ] ] ]
常数弗拉塔=
arr.flat(1)//1为默认深度
log(JSON.stringify(arr))
log(JSON.stringify(flatArr))
// [[1],[2,3,[4,5,[6]]],[7,[8,9]]]
//[1,2,3、[4,5、[6]]、7、[8,9]]
我不认为多层平面在[1][[1]]]