Javascript多维数组扁平化
下面是将多位数组转化为单一数组的三种不同方法。
对于此数组:
1 | var myArray = [[1, 2],[3, 4, 5], [6, 7, 8, 9]]; |
我们需要的结果是:
1 | [1, 2, 3, 4, 5, 6, 7, 8, 9] |
解决方案1:使用concat()
和apply()
1 | var myNewArray = [].concat.apply([], myArray); |
解决方案2:使用reduce()
1 | var myNewArray = myArray.reduce(function(prev, curr) { |
解决方案3:
1 | var myNewArray3 = []; |
在这里看一下三种逻辑的实际作用。
方案四:使用 ES6 的展开运算符
1 | var myNewArray4 = [].concat(...myArray); |
在这里 查看这四种方法
对于无限嵌套的数组请使用 Lodash 的 flattenDeep()。
如果你担心性能问题的话,这里 有一个测试让你确认他们是如何执行的。
对于较大的数组试一下Underscore的flatten().
如果你对性能好奇,这里有一个测试。
原文作者: anhr
版权声明: 转载请注明出处(必须保留原文作者署名原文链接)