Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/397.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 基于索引的数组重构_Javascript_Arrays_Indexing_Logic - Fatal编程技术网

Javascript 基于索引的数组重构

Javascript 基于索引的数组重构,javascript,arrays,indexing,logic,Javascript,Arrays,Indexing,Logic,假设我有一个JavaScript数组,如下所示: Array:[ ["0", "Grape"],["0", "Orange"],["1", "Mango"],["2", "Strawberry"], ["2", "Banana"],["3", "Watermelon"] ] 我想重建为: Array:[ ["Grape", "Orange"],["Mango"],["Strawberry", "Banana"],["Watermelon"] ] 初始数组中的数

假设我有一个JavaScript数组,如下所示:

Array:[  
    ["0", "Grape"],["0", "Orange"],["1", "Mango"],["2", "Strawberry"],
    ["2", "Banana"],["3", "Watermelon"]
]
我想重建为:

Array:[  
    ["Grape", "Orange"],["Mango"],["Strawberry", "Banana"],["Watermelon"]
]
初始数组中的数字作为重构数组中水果数据的索引。因此,葡萄和橙子被放在指数0中,芒果被放在指数1中,依此类推。我是如何做到这一点的?多谢各位

使用和

使用
reduce
,我们正在创建结果
数组
,其中对于原始数组中的每个条目,我们正在添加/更新索引的值(
c[0]

让arr1=[“0”,“葡萄”],[“0”,“橙色”],[“1”,“芒果”],[“2”,“草莓”],[“2”,“香蕉”],[“3”,“西瓜”];
设arr2=arr1.reduce((a,c)=>Object.assign(a,{[c[0]]:(a[c[0]]| |[])。concat(c[1]),[]);
控制台日志(arr2)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]);
}