在 JavaScript 中为对象初始值设定项中的对象属性设置值时如何调用多个语句?

问题描述 投票:0回答:2

如果要计算的属性只需要一条语句,那就很简单了

let object = {
    array: new Array(10)
};

或者我也可以执行以下操作(尽管我不太喜欢)

let object = {};
object.array = new Array(10);

但是如果我想(例如)用 0 值初始化数组(默认情况下这些值是“未定义的”)怎么办?我只能用第二种方法了

let object = {};
object.array = new Array(10);
for(let element of array){
    element = 0;
}

最接近第一个想到的方法可能是这样做

let object = {
    array: (function(){
        let array = new Array(10);
        for(let element of array){
            element = 0;
        }
        return array;
    })()
}

也许有一种我不知道的更简单的方法?

javascript object initialization
2个回答
0
投票

只需使用Array.fill:

let object = {
  array: Array(10).fill(0)
}
console.log(object)

或者,进行稍微复杂的数组初始化:

let object = {
  array: Array(10).fill().map((_,i) => `hello ${i}`)
}
console.log(object)


0
投票

您可以使用

fill
0
填充数组,如下所示:

Array 实例的

fill()
方法将数组中索引范围内的所有元素更改为静态值。它返回修改后的数组。

let object = {
  array: Array(10).fill(0)
};

console.log(object);

此外,您还可以将

Array.from
用作:

Array.from()
静态方法从可迭代或类似数组的对象创建一个新的浅复制数组实例。

let object = {
    array: Array.from({ length: 10 }).fill(0)
};

console.log(object);

© www.soinside.com 2019 - 2024. All rights reserved.