如何在JavaScript中初始化数组的长度?
我在JavaScript数组上读过都建通过使用var test = new Array(4)
;语法将整数传递给Array构造函数来初始化具有一定长度的数组。
在我的js文件中广泛使用此语法后,我通过jsLint运行了其中一个文件,结果很糟糕:
错误:第1行第22个字符的问题:预期为')',而是显示为'4'。
var test = new Array(4);
第1行第23个字元的问题:预期为';' 而是看到')'。
var test = new Array(4);
第1行第23个字符处的问题:需要标识符,而看到了')'。
阅读完jsLint对其行为的解释之后,看起来jsLint并不真正喜欢new Array()
语法,而是[]在声明数组时更喜欢。
所以我有几个问题:
首先,为什么?我使用new Array()
语法代替会冒任何风险吗?我应该注意浏览器的不兼容性吗?
其次,如果我切换到方括号语法,是否有任何方法可以声明一个数组并将其长度全部设置在一行上,或者我必须执行以下操作:
var test = [];test.length = 4;
回答:
Array(5)
给你一个长度为 5 但没有值的数组,因此你不能迭代它。Array.apply(null, Array(5)).map(function () {})
为您提供一个长度为 5 且未定义为值的数组,现在可以对其进行迭代。Array.apply(null, Array(5)).map(function (x, i) { return i; })
为您提供一个长度为 5 且值为 0、1、2、3、4 的数组。Array(5).forEach(alert)
什么都不做,Array.apply(null, Array(5)).forEach(alert)
给你5个警报ES6
给我们Array.from
所以现在你也可以使用Array.from(Array(5)).forEach(alert)
- 如果你想用某个值初始化,这些很高兴知道…
Array.from('abcde')
,Array.from('x'.repeat(5))
或者
Array.from({length: 5}, (v, i) => i) // gives [0, 1, 2, 3, 4]
以上是 如何在JavaScript中初始化数组的长度? 的全部内容, 来源链接: utcz.com/qa/433718.html