首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >JavaScript对象属性设置为数组

JavaScript对象属性设置为数组
EN

Stack Overflow用户
提问于 2019-01-10 20:22:49
回答 5查看 72关注 0票数 1

我有以下对象:

代码语言:javascript
运行
复制
const movies = {
  1: {
    id: 1,
    name: 'Planet Earth',
  },
  2: {
    id: 2,
    name: 'Selma',
  },
  3: {
    id: 3,
    name: 'Million Dollar Baby',
  },
  4: {
    id: 4,
    name: 'Forrest Gump',
  },
  5: {
    id: 5,
    name: 'Get Out',
  },
};

然后我想要一个只包含属性id的数组。为了做到这一点,我尝试了一些类似的方法:

代码语言:javascript
运行
复制
const moviesArray = Object.values(movies);
const idArray = moviesArray.map(movie => Object.values(movie)[0]);
console.log(idArray);

它可以正确地打印idArray,但我的问题是,我是否缺少解决此问题的方法。

EN

回答 5

Stack Overflow用户

发布于 2019-01-10 20:24:31

您可以直接使用id属性:

代码语言:javascript
运行
复制
const
    movies = { 1: { id: 1, name: 'Planet Earth' }, 2: { id: 2, name: 'Selma' }, 3: { id: 3, name: 'Million Dollar Baby' }, 4: { id: 4, name: 'Forrest Gump' }, 5: { id: 5, name: 'Get Out' } },
    moviesArray = Object.values(movies),
    idArray = moviesArray.map(movie => movie.id);

console.log(idArray);

票数 4
EN

Stack Overflow用户

发布于 2019-01-10 20:26:43

代码语言:javascript
运行
复制
const movies = {
  1: {
    id: 1,
    name: 'Planet Earth',
  },
  2: {
    id: 2,
    name: 'Selma',
  },
  3: {
    id: 3,
    name: 'Million Dollar Baby',
  },
  4: {
    id: 4,
    name: 'Forrest Gump',
  },
  5: {
    id: 5,
    name: 'Get Out',
  },
};

const moviesArray = Object.values(movies);
const idArray = moviesArray.map(movie => movie.id);
console.log(idArray);

票数 1
EN

Stack Overflow用户

发布于 2019-01-10 20:33:04

在这种情况下,我更倾向于使用movie => movie.id作为映射器函数,而不是movie => Object.values(movie)[0]

当前函数的问题是,它假设id总是Object.values返回的数组中的第一个属性。对于您当前编写的函数,这恰好是真的,但我不确定在一般情况下您是否一定能保证这一点。即使属性的顺序不同,直接引用movie.id也是有效的。它也应该更快一点,因为你不必每次都把eaxh单个对象转换成一个数组。

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

https://stackoverflow.com/questions/54128643

复制
相关文章

相似问题

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