根据不匹配的某些值返回JSON

时间:2020-04-06 10:46:32

标签: javascript arrays json

我正在JSON中的javascript上工作,只想返回不包含文章单词的值。对于以下JSON

var json = [
    {
        id: 1,
        path: ["home>blog","home>article"]
    },
    {
        id: 2,
        path: ["home>blog"]
    },
    {
        id: 3,
        path: ["home>blog"]
    },
    {
        id: 4,
        path: ["home>blog","home>article"]
    },
]

我想得到的最终结果是-

var final = [
    {
        id: 2,
        path: ["home>blog"]
    },
    {
        id: 3,
        path: ["home>blog"]
    }
]

如何获得结果?

2 个答案:

答案 0 :(得分:1)

使用.some().includes()可以达到目的。

尝试以下操作:

const json = [{ id: 1, path: ["home>blog","home>article"] }, { id: 2, path: ["home>blog"] }, { id: 3, path: ["home>blog"] }, { id: 4, path: ["home>blog","home>article"] }];

const result = json.filter(e => !e.path.some(s => s.includes('article')));

console.log(result);

我希望这会有所帮助!

答案 1 :(得分:0)

希望此代码有效

const final = json.filter(obj=>{
 for(const path of obj.path){
 if(path.includes('article') return false;
 }
return true;
});