使用单个值初始化数组

新手上路,请多包涵

有没有更紧凑的方法来进行这种初始化?

 for (var i = 0; i < arraySize; i++) array[i] = value;

原文由 oldestlivingboy 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 233
2 个回答
while(arraySize--) array.push(value);

没有初始化(据我所知)


更新

自从 4 年前发布这个答案以来,人们似乎一直回到这里寻找这个答案。出于基准测试的目的,我用一些不同的解决方案制作了一个 JSPerf

上面的解决方案虽然很短,但并不是最快的。坚持相同的短款式,但性能更好:

 while(size--) array[size] = value;


2016 年 2 月 更新 使用包含更多测试用例的新修订版更新了 JSPerf。

如果性能无关紧要并且您想要单线:

 var value = 1234, // can be replaced by a fixed value
    size  = 1000, // can be replaced by a fixed value
    array = Array.apply(null,{length: size}).map(function() { return value; });

一个更高效的解决方案(在一个,脏的,行中): 注意:这会替换范围内的现有值、大小和 i 变量

for(var i = 0, value = 1234, size = 1000, array = new Array(1000); i < size; i++) array[i] = value;

原文由 DoXicK 发布,翻译遵循 CC BY-SA 3.0 许可协议

一种简短的方法是:

 var arr = Array(arraySize).fill(value);

将使 arr = Array [ 0, 0, 0, 0, 0 ] 如果 arraySize == 5value == 0 ,例如。

原文由 Klaus Byskov Pedersen 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题