mdn*_*mdn 3 javascript arrays undefined ecmascript-6
我有一个指定长度的数组,我试图用依赖于每个索引的值填充它.
let arr = new Array(someLength)
arr.map((v, i) => i * 2)
Run Code Online (Sandbox Code Playgroud)
据我所知,这不起作用,因为map
跳过未定义的值.
我有几个问题:
map
要做类似的工作[undefined, undefined]
?无论如何使用ES6阵列方法来实现这一目标?
我知道我可以使用标准for
循环,但想知道是否有更好的方法.
for (let i = 0; i < arr.length; i++) {
arr[i] = i * 2
}
Run Code Online (Sandbox Code Playgroud)
到目前为止,我找到了一种方法,但它并不是很干净.
arr = arr.fill(undefined).map((foo, i) => i * 2)
Run Code Online (Sandbox Code Playgroud)
- 为什么
.map
要做类似的工作[undefined, undefined]
?
考虑这两种情况
let a1 = [];
a1.length = 2;
a1; // [undefined × 2]
// vs
let a2 = [undefined, undefined];
a2; // [undefined, undefined]
Run Code Online (Sandbox Code Playgroud)
Object.keys
每个人的结果是什么?
Object.keys(a1); // []
Object.keys(a2); // ["0", "1"]
Run Code Online (Sandbox Code Playgroud)
所以,我们可以看到两者之间的区别 - 一个具有初始化键,另一个没有
- 无论如何使用ES6阵列方法来实现这一目标?
你已经指出.fill
,你也可以使用Array.from
Array.from({length: 5}, (itm, idx) => 2 * idx); // [0, 2, 4, 6, 8]
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1384 次 |
最近记录: |