【问题标题】:filter array of objects by the value of one key if this key is also included in an array of strings [duplicate]如果该键也包含在字符串数组中,则按一个键的值过滤对象数组[重复]
【发布时间】:2021-07-01 10:33:03
【问题描述】:

如果该键也包含在字符串数组中,如何通过一个键的值从对象数组中过滤掉对象?

const objArr = [
{
identifiers: {id: 1, name: "X"}, 
char: {char1: a, char2: b}
},
{
identifiers: {id: 2, name: "Y"}, 
char: {char1: c, char2: d}
},
]

不过滤掉所有名称包含在此 arr 中的对象:

with strArr = [
"X", "Z"
]

结果:

const objArrAfterFilter = [
{
identifiers: {id: 2, name: "Y"}, 
char: {char1: c, char2: d}
},
]

【问题讨论】:

  • 到目前为止你尝试了什么?

标签: javascript arrays object


【解决方案1】:

这应该可以解决问题:

const objArr = [{
    identifiers: {id: 1, name: "X"}, 
    char: {char1: 'a', char2: 'b'}
},
{
    identifiers: {id: 2, name: "Y"}, 
    char: {char1: 'c', char2: 'd'}
},
];

strArr = ["X", "Z"]

filtered_array = objArr.filter((element)=>{
    return !strArr.includes(element.identifiers.name);
});

console.log(filtered_array)

基本上只需要在数组原型中使用filter方法,它会返回objArr中满足函数中条件的新列表元素。

我们指定的条件是元素的标识符名称不应包含在 strArr 中,因此条件如下所示:

!strArr.includes(element.identifiers.name)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-15
    • 2019-12-30
    • 1970-01-01
    • 1970-01-01
    • 2018-07-17
    • 1970-01-01
    相关资源
    最近更新 更多