有没有更紧凑的方法来进行这种初始化?
for (var i = 0; i < arraySize; i++) array[i] = value;
原文由 oldestlivingboy 发布,翻译遵循 CC BY-SA 4.0 许可协议
有没有更紧凑的方法来进行这种初始化?
for (var i = 0; i < arraySize; i++) array[i] = value;
原文由 oldestlivingboy 发布,翻译遵循 CC BY-SA 4.0 许可协议
一种简短的方法是:
var arr = Array(arraySize).fill(value);
将使 arr = Array [ 0, 0, 0, 0, 0 ]
如果 arraySize == 5
和 value == 0
,例如。
原文由 Klaus Byskov Pedersen 发布,翻译遵循 CC BY-SA 3.0 许可协议
13 回答13k 阅读
7 回答2.1k 阅读
3 回答1.3k 阅读✓ 已解决
2 回答1.4k 阅读✓ 已解决
6 回答1.2k 阅读✓ 已解决
6 回答1.1k 阅读
3 回答1.3k 阅读✓ 已解决
没有初始化(据我所知)
更新
自从 4 年前发布这个答案以来,人们似乎一直回到这里寻找这个答案。出于基准测试的目的,我用一些不同的解决方案制作了一个 JSPerf 。
上面的解决方案虽然很短,但并不是最快的。坚持相同的短款式,但性能更好:
2016 年 2 月 更新 使用包含更多测试用例的新修订版更新了 JSPerf。
如果性能无关紧要并且您想要单线:
一个更高效的解决方案(在一个,脏的,行中): 注意:这会替换范围内的现有值、大小和 i 变量