rob*_*007 5 javascript arrays loops multidimensional-array
我有一个像这样的二维数组:
let test2d = [
["foo", "bar"],
["baz", "biz"]
]
Run Code Online (Sandbox Code Playgroud)
如果我想将这个2D数组转换为1D数组(不交替它们的值),我可以通过两种方式实现:
第一种方式:
let merged = test2d.reduce( (prev, next) => prev.concat(next) )
console.log(merged) // ["foo", "bar", "baz", "biz"]
Run Code Online (Sandbox Code Playgroud)
第二种方式:
let arr1d = [].concat.apply([], test2d)
console.log(arr1d) // ["foo", "bar", "baz", "biz"]
Run Code Online (Sandbox Code Playgroud)
问题:如何获得一维数组但其值交替出现?我的意思是这样的:
["foo", "baz", "bar", "biz"]
Run Code Online (Sandbox Code Playgroud)
您可以为每个索引获取一个数组,并在末尾连接数组。
var array = [["foo", "bar"], ["baz", "biz"]],
result = [].concat(...array.reduce((r, a) => {
a.forEach((v, i) => (r[i] = r[i] || []).push(v));
return r;
}, []));
console.log(result);Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
88 次 |
| 最近记录: |