javascript:尝试将数组展平仅一个级别

前端之家收集整理的这篇文章主要介绍了javascript:尝试将数组展平仅一个级别前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我正在尝试编写一个函数来展平数组.我有部分功能正常工作,另一半我需要帮助.

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],3]]
最佳答案
concat array method期望一个或多个数组作为参数,其元素将被追加:

[1].concat([2,3],[4]) // [1,4]

因此,如果您使用的是apply,那将会推平另一个级别:

[].concat.apply([1],[[2],[3]]) // === [1].concat([2],[3])

所以你可以使用push而不是concat,或者调用(或者只是直接调用)而不是仅仅应用于获得单个展平级别.

猜你在找的JavaScript相关文章