Javascript 从对象数组中选择一个对象
下面是一个小数据集,它代表了live app中较大的数据集-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
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)