Javascript 从对象数组中选择一个对象

Javascript 从对象数组中选择一个对象,javascript,Javascript,下面是一个小数据集,它代表了live app中较大的数据集- const data = [ { id: 23, bucket: '12/31/2020' }, { id: 24, bucket: '3/28/2021' }, { id: 25, bucket: '7/14/2021' } ]; 有一个用例需要在数据数组中选择一个对象。例如,如果要选择id为24的对象,则所需的输出需要是{id:24,buc

下面是一个小数据集,它代表了live app中较大的数据集-

const data = [
            { id: 23, bucket: '12/31/2020' },
            { id: 24, bucket: '3/28/2021' }, 
            { id: 25, bucket: '7/14/2021' }
        ];
有一个用例需要在数据数组中选择一个对象。例如,如果要选择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编写代码的方式,以便在第一次传递时获得所需的结果。如何实现这一点?

使用.find代替.filter返回项目,如果未找到,则返回null。

使用.find代替.filter返回项目,如果未找到,则返回null。

map始终返回数组,请查看文档


从数组中提取映射对象。

映射始终返回数组,请查看文档

从数组中提取映射对象。

使用Arrayfind查找准确的对象,然后在spread操作符的帮助下添加另一个属性状态以及其他属性…:

const data=[{id:23,bucket:'12/31/2020'},{id:24,bucket:'3/28/2021'},{id:25,bucket:'7/14/2021'}]; const getData=id=>{…data.findo=>o.id==id,状态:active}; console.loggetData24 使用Arrayfind查找确切的对象,然后在spread操作符的帮助下添加另一个属性状态以及其他属性…:

const data=[{id:23,bucket:'12/31/2020'},{id:24,bucket:'3/28/2021'},{id:25,bucket:'7/14/2021'}]; const getData=id=>{…data.findo=>o.id==id,状态:active};
console.loggetData24;是的,我检查了文档中的.map,知道它返回了一个数组。我只是不知道。用“查找”来代替“过滤器”。啊!我认为最好的方法是先检查文档。您可以从ES6及以上版本中找到许多有用的函数。检查lodash等库也是个好主意是的,我检查了.map的文档,知道它返回了一个数组。我只是不知道。用“查找”来代替“过滤器”。啊!我认为最好的方法是先检查文档。您可以从ES6及以上版本中找到许多有用的函数。检查库(如lodash)也是一个好主意
const result = data.find(({id}) => id === 24)