首页 > 解决方案 > 从对象数组中选择一个对象

问题描述

这是代表实时应用程序中较大数据集的小数据集 -

const data = [
            { id: 23, bucket: '12/31/2020' },
            { id: 24, bucket: '3/28/2021' }, 
            { id: 25, bucket: '7/14/2021' }
        ];

有一个用例,需要选择data数组中的一个对象。例如,如果id要选择 24 的对象,则所需的输出需要是
{ id: 24, bucket: '3/28/2021', status: 'active' }

这是我尝试过的:

const result = data.filter(o => o.id == 24).map(o => ({ id: o.id, bucket: o.bucket, status: 'active' }));

但是,这会将对象作为数组中的单个对象输出,如下所示
[{ id: 24, bucket: '3/28/2021', status: 'active' }]

虽然可以添加另一个步骤result[0],但似乎应该有一种方法可以修改代码的编写方式,result以便在第一次通过时获得所需的结果。如何做到这一点?

标签: javascript

解决方案


用于Array#find查找确切的对象,然后status在扩展运算符的帮助下添加另一个属性以及其他属性...

const data = [{ id: 23, bucket: '12/31/2020' }, { id: 24, bucket: '3/28/2021' }, { id: 25, bucket: '7/14/2021' }];
const getData = (id) => ({...data.find(o => o.id === id), status: "active"});
console.log(getData(24));


推荐阅读