如何在打字稿中创建一个零数组?

时间:2015-04-22 00:59:06

标签: javascript arrays typescript

目前,我正在使用Array.apply(null, new Array(10)).map(Number.prototype.valueOf, 0);创建一个0的数组。

我想知道在打字稿中有更好(更干净)的方法吗?

4 个答案:

答案 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);

View on Playground

最终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[]