Reputation: 786
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]"
Upvotes: 0
Views: 46
Reputation: 386560
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; }
Upvotes: 3