目前,我正在使用Array.apply(null, new Array(10)).map(Number.prototype.valueOf, 0);
创建一个0的数组。
我想知道在打字稿中有更好(更干净)的方法吗?
答案 0 :(得分:4)
我已经回顾了阵列孔的概念:
Array.apply(null, new Array(10)).map(()=> 0);
不是很大的节约,而是一些。
答案 1 :(得分:4)
您可以添加到打开的Array<T>
界面,以使fill
方法可用。如果您需要较旧的浏览器支持,则有polyfill for Array.prototype.fill on MDN。
interface Array<T> {
fill(value: T): Array<T>;
}
var arr = Array<number>(10).fill(0);
最终fill
方法将进入lib.d.ts
文件,您可以删除它(编译器会在您需要时发出警告)。
答案 2 :(得分:2)
您可以将整数参数传递给Array构造函数,这将返回一个新的JavaScript数组,其length属性设置为该数字,此外,您可以使用.fill
来填充索引为零的数组的所有元素
const data = ([...Array(10).fill(0)])
console.log(data)
答案 3 :(得分:2)
到目前为止,您可以做到
const a = new Array<number>(1000).fill(0);
请确保您包含<number>
,否则将推断a
的类型为any[]
。