首页 > 解决方案 > 过滤 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]));

但它不起作用,因为它并不是真正指的是数组中键的名称。

有什么帮助吗?

标签: javascript

解决方案


您不需要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);


推荐阅读