javascript - 过滤 javascript 对象数组以包含特定字段
问题描述
我有一个看起来像这样的对象数组:
[
{ "customer": "2222", "owners": { "1": "aaa", "2": "bbb" }, "title": "V1" },
{ "customer": "1111", "owners": { "1": "aaa", "2": "bbb" }, "title": "V2" }
]
我想过滤数组以仅包含该owners
字段。
[
{"owners": { "1": "aaa", "2": "bbb" }},
{"owners": { "1": "aaa", "2": "bbb" }}
]
我尝试了类似的东西
const filterArr = (arr, obj) => taskArray.filter( task => Object.keys(task).some( key => obj[key]));
但它不起作用,因为它并不是真正指的是数组中键的名称。
有什么帮助吗?
解决方案
您不需要filter
,您可以使用Array.prototype.map
将原始数组中的每个对象映射到另一个具有您想要的结构的对象:
var arr = [
{ "customer": "2222", "owners": { "1": "aaa", "2": "bbb" }, "title": "V1" },
{ "customer": "1111", "owners": { "1": "aaa", "2": "bbb" }, "title": "V2" }
]
var result = arr.map(obj => ({'owners' : obj['owners']}));
console.log(result);
推荐阅读
- linux - 加载共享库时出错:libxcb-errors.so.0:无法打开共享对象文件:没有这样的文件或目录
- c++ - 程序构建为 64 位可执行文件
- oracle - Oracle 19c & 12c 创建索引并行提示
- python-3.x - 是否可以以类似于 Excel 工作表的方式更改字典中键的值?
- windows - 增加 Windows Server 2019 中每个会话的最大打开文件数 | MongoDB打开文件太多错误
- python - 没有为 aws sam cli 配置 Python
- python - 如何将 300 个文件合并为 3 个文件?
- sql - SQL中的条件COUNT与表连接
- javascript - Javascript 使用 getElementByClassName 更改按钮颜色
- eslintrc - eslint中max-len的配置