首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在JavaScript中创建一个以每个数字为键值的对象?

如何在JavaScript中创建一个以每个数字为键值的对象?
EN

Stack Overflow用户
提问于 2021-02-06 17:11:42
回答 3查看 50关注 0票数 0

所以,基本上我是在尝试创建一个对象,比如

代码语言:javascript
复制
{
'1': 0, 
'2': 0, 
'3': 0,
.....
'9': 0
}

有什么"javaScriptic“技巧可以做到这一点吗?

EN

回答 3

Stack Overflow用户

发布于 2021-02-06 17:14:38

您可以使用new Array(10)创建一个包含10个项的数组,用0填充它,然后将其扩展到一个对象。

注意:使用此方法,第一个键将是0,而不是1。

代码语言:javascript
复制
const obj = { ...new Array(10).fill(0) }

console.log(obj)

要获取以1开头的对象,可以使用带rest的解构(...)来获取具有除0以外的所有属性的对象:

代码语言:javascript
复制
const { 0: _, ...obj } = { ...new Array(10).fill(0) }

console.log(obj)

票数 3
EN

Stack Overflow用户

发布于 2021-02-06 17:19:38

你可以带上Object.fromEntries

代码语言:javascript
复制
const result = Object.fromEntries(Array.from({ length: 10 }, (_, i) => [i + 1, 0]));

console.log(result);

票数 1
EN

Stack Overflow用户

发布于 2021-02-06 17:16:51

您可以像这样编写一行代码

因为您希望键从1开始,所以初始化一个大小为9的数组,并将该值映射为按1递增的索引。在此基础上,以空对象的开头执行reduce,以获得预期的输出

代码语言:javascript
复制
const res = Array
  .from({ length: 9 }, (_, index) => index + 1)
  .reduce((acc, el) => ({ ...acc, [el]: 0 }), {})

console.log(res)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66075228

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档