简体   繁体   中英

javascript array merge based on indexes

I have one array, needs to merge with values the same indexes values like 0 will become ['0','0','1','2']

Example:

0:
    0: (2) ['0', '0']
    1: (2) ['0', '0']
    2: (2) ['0', '2']
1:  
    0: ['1']
    1: ['2']
    2: ['2']
2:  
    0: ['2']
    1: ['2']
    2: ['2']

Tried

var result = outterArray.reduce(function (a, b) {
        return a.map(function (v, i) {
            return [v] + b[i];
        });
      });

but getting

0: "0,012"
1: "0,022"
2: "0,222"

expected :

0: "[0,0,1,2]"
1: "[0,0,2,2]"
2: "[0,2,2,2]"

Assuming the below array, you could map the inner array and take the values from the accumulator at same index or an empty array.

 const data= [ [['0', '0'], ['0', '0'], ['0', '2']], [['1'], ['2'], ['2']], [['2'], ['2'], ['2']] ], result = data.reduce((r, a) => a.map((v, i) => [...(r[i] || []), ...v]), []); console.log(result);
 .as-console-wrapper { max-height: 100% !important; top: 0; }

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM