根据对象键值从对象数组中删除对象

时间:2019-06-13 12:05:20

标签: javascript arrays object

我有一个类似

的对象
let arr = [
    {isManaged: true, id:1},
    {isManaged: false, id:2},
    {isManaged:false, id:3}
]

要获取真实的值,我会这样做

arr.map(shift => ({
    id: shift.id,
    isPartnerManaged: shift.isManaged,
}))

但是这只会返回我为true的值,现在,我想从对象数组中删除它们。我尝试使用array.pop,但不知道要使用哪个索引。有什么想法吗?

2 个答案:

答案 0 :(得分:3)

arr = arr.filter(shift => shift.isManaged);

答案 1 :(得分:0)

您可以过滤数组并构建新对象。

var array = [{ isManaged: true, id: 1 }, { isManaged: false, id: 2 }, { isManaged: false, id: 3 }],
    result = array
        .filter(({ isManaged }) => isManaged)
        .map(({ isManaged: isPartnerManaged, id }) => ({ id, isPartnerManaged }));

console.log(result);