javascript - 从对象数组中选择一个对象
问题描述
这是代表实时应用程序中较大数据集的小数据集 -
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
以便在第一次通过时获得所需的结果。如何做到这一点?
解决方案
用于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));
推荐阅读
- google-apis-explorer - google search console data does not match results in Search Analytics: query tester on the Google API Reference
- python - How to extract string between parentheses that match substring?
- c++ - 如何使用 const 引用作为模板参数?
- php - PHP traits - defining default constants
- html - 省略号不显示 3 个元素
- python - 如何从 spacy 的转录中表示未知/空白单词?
- swift - How to make a collection view behave like a tab bar controller in terms of navigation?
- python - 无法使用 Fman FBS 打包和打开我的 PyQt GUI
- javascript - Django - What is the most pythonic way to update my page via AJAX?
- python - 如何使用 scrapy 抓取多个网页?