创建零填充 JavaScript 数组的最有效方法?

2022-08-29 22:27:39

在JavaScript中创建任意长度的零填充数组的最有效方法是什么?


答案 1

ES6 引入了 Array.prototype.fill。它可以这样使用:

new Array(len).fill(0);

不确定它是否很快,但我喜欢它,因为它简短且自我描述。

它仍然不在IE中(检查兼容性),但有一个polyfill可用


答案 2

虽然这是一个旧线程,但我想添加我的2美分。不知道这有多慢/多快,但它是一个快速的一行。以下是我的工作:

如果我想预先填写一个数字:

Array.apply(null, Array(5)).map(Number.prototype.valueOf,0);
// [0, 0, 0, 0, 0]

如果我想用字符串预先填充:

Array.apply(null, Array(3)).map(String.prototype.valueOf,"hi")
// ["hi", "hi", "hi"]

其他答案建议:

new Array(5+1).join('0').split('')
// ["0", "0", "0", "0", "0"]

但是如果你想要0(数字)而不是“0”(字符串中的零),你可以这样做:

new Array(5+1).join('0').split('').map(parseFloat)
// [0, 0, 0, 0, 0]