假设我有一个如下所示的JavaScript数组:
Array:[
["0", "Grape"],["0", "Orange"],["1", "Mango"],["2", "Strawberry"],
["2", "Banana"],["3", "Watermelon"]
]
我想重构为的:
Array:[
["Grape", "Orange"],["Mango"],["Strawberry", "Banana"],["Watermelon"]
]
初始数组中的数字充当重构数组中水果数据的索引。因此,Grape和Orange放在索引0中,Mango放在索引1中,依此类推。我如何实现的?谢谢。
答案 0 :(得分:1)
使用reduce
,我们将创建结果array
,其中,对于原始数组中的每个条目,我们将添加/更新索引(c[0]
)的值。
let arr1 = [["0", "Grape"],["0", "Orange"],["1", "Mango"],["2", "Strawberry"],["2", "Banana"],["3", "Watermelon"]];
let arr2 = arr1.reduce((a,c) => Object.assign(a, {[c[0]]:(a[c[0]] || []).concat(c[1])}), []);
console.log(arr2);
答案 1 :(得分:0)
a是您的初始数组: 在这里,我认为索引从0开始,是整数并且已排序。
a = [["0", "Grape"],["0", "Orange"],["1", "Mango"],["2", "Strawberry"],["2", "Banana"],["3", "Watermelon"]]
b=[];
for (i in a) {
if (a[i][0] >= b.length)
b.push([]);
(b[b.length-1]).push(a[i][1]);
}