为什么Array.prototype.map
直接在 Array 实例上调用会o
导致“未修改”数组?
var o = Array(3); // [ undefined, undefined, undefined ]
o.map((x,y) => y*2); // [ undefined, undefined, undefined ]
相反,我必须使用应用(或调用):
Array.apply(0, o).map((x, y) => y*2)); // [ 0, 2, 4 ]
我错过了什么?
最后,上面的替代方案是:
[...o].map((x, y) => y*2); // [ 0, 2, 4]
我想是因为这可以纠正我原始实现中缺少的任何内容。