I have listed several ways to create nested array and add value to sub array:
Way 1: works!
// Create empty nested array:
var arrs = [[],[],[]];
arrs[0].push(1);
arrs[1].push(2);
arrs[2].push(3);
Then, not surprisingly, arrs is updated:
[[1],[2],[3]]
Way 2: works!
var arrs = [];
for (var i = 0; i < 3; i++) {
arrs[i] = [];
}
arrs[0].push(1);
arrs[1].push(2);
arrs[2].push(3);
arrs:
[[1],[2],[3]]
Way 3: ?
var arrs = [];
var subArr = [];
for (var i = 0; i < 3; i++) {
arrs[i] = subArr;
}
arrs[0].push(1);
arrs[1].push(2);
arrs[2].push(3);
arrs:
[[1,2,3],[1,2,3],[1,2,3]]
My question: why the way 3 leads to arrs result as [[1,2,3],[1,2,3],[1,2,3]] rather than [[1],[2],[3]]?
subArrthrice and the same changed object is referred by 3 objects inarrArray.from({length: 3}, (_, i) => ([i + 1]));... just saying