我正在尝试使用map函数在未初始化的数组上设置默认值,但它似乎不起作用,有关如何设置默认值的任何想法?
请考虑我在Chrome控制台中尝试过的代码段.
> var N = 10; > var x = new Array(N); > x [undefined x 10] > x.map(function(i) { return 0;}); [undefined x 10]
我期待数组被初始化为0.
如果你想填充一个数组,你可以使用Array(5).fill()
,然后这些方法将按预期工作 - 请参阅aasha7的备用相关答案.较早的预填方法包括:
Array.apply(null, new Array(5)).map(function() { return 0; }); // [ 0, 0, 0, 0, 0 ]
在阅读了评论中链接的一篇帖子之后,我发现这也可以写成
Array.apply(null, {length: 5}).map(function() { return 0; });
但是,尝试使用.map
未定义的值将无法正常工作.
x = new Array(10); x.map(function() { console.log("hello"); }); // so sad, no "hello" // [ , , , , , , , , , ]
.map
将跳过未定义的值:(
我只想指出你现在可以这样做:
Array(2).fill().map(_ => 4);
这将返回[4, 4]
.