如果要计算的属性只需要一条语句,则非常简单

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;
    })()
}

也许有一种我不知道的更简单的方法来做这件事?

编辑:数组只是想到一个例子时首先想到的东西.我的问题不仅仅在于初始化数组,我正在寻找一个比使用Array.fill()更通用的解决方案.

推荐答案

可以使用IIFE从对象初始值设定项中执行更复杂的属性值内联计算.以发布的代码为例:

const obj = {
    array: (()=> { // example code
        const a = new Array(10);
        return a.fill(0);
     })(),
    hw: "hello world",
}

console.log(obj.hw, obj.array); 

Javascript相关问答推荐

以逗号分隔的列表来数组并填充收件箱列表

如何使用CSS和JavaScript创建粘性、凝聚力的形状到形状(容器)变形?

基于每个索引迭代嵌套对象

如何保持子画布元素的1:1宽高比?

如何通过onClick为一组按钮分配功能;

是什么原因导致此Angular 16电影应用程序中因类型错误而不存在属性?

硬币兑换运行超时

yarn安装一个本地npm包,以便本地包使用main项目的node_modules(ckeditor-duplicated-modules错误)

拖放仅通过 Select 上传

在react js中使用react—router—dom中的Link组件,分配的右侧不能被 destruct ''

从Node JS将对象数组中的数据插入Postgres表

使用GraphQL查询Uniswap的ETH价格

我正在建立一个基于文本的游戏在react ,我是从JS转换.我怎样才能使变量变呢?

让chart.js饼图中的一个切片变厚?

try 使用PM2在AWS ubuntu服务器上运行 node 进程时出错

如何使用基于promise (非事件emits 器)的方法来传输数据?

如何根据查询结果重新排列日期

如何在AG-Grid文本字段中创建占位符

如何在TransformControls模式下只保留箭头进行翻译?

我在哪里添加过滤器值到这个函数?