Array.prototype.fill
由于在将新方法与Array.prototype.map
. 例如:
// Initialize our n x n matrix and fill with 0's
let M = Array(3).fill(Array(3).fill(0));
M.map(function (row, i) {
row[i] = i;
return row;
}); //=> [[0, 1, 2], [0, 1, 2], [0, 1, 2]]
在上面的示例中,我希望输出与下面的示例相同:
let M = [[0, 0, 0], [0, 0, 0], [0, 0, 0]];
M.map(function (row, i) {
row[i] = i;
return row;
}); //=> [[0, 0, 0], [0, 1, 0], [0, 0, 2]]
然而事实并非如此。出于某种原因,第一个示例中返回的结果将用作下一次迭代中的行值。任何想法为什么会发生这种情况?我正在使用 6to5ify 转换为 browserify 将 ES6 代码转换为 ES5。