使用lodash过滤WithIn数组中的数组

我具有以下JSON结构。

comapany : XYZ
Emp Info:[
            {
                empName: A,empID:1
                salary[
                    {
                        year: 2017,value: 3000
                    },{
                        year: 2018,value: 5000
                    }
                ]
            },{
                empName: B,empID:2
                salary[
                    {
                        year: 2017,value: 6000
                    },value: 3000
                    }
                ]
            },{
            empName: C,empID:3
            salary[
                {
                    year: 2017,value: 3000
                },{
                    year: 2018,value: 8000
                }
            ]
        },]

此处的Emp Info是一个数组,其中包含另一个薪水数组。 我想过滤所有价值3000的薪水。所以我的输出应如下所示

comapany : XYZ
Emp Info:[
            {
                empName: A,empID:2
                salary[
                    {
                        year: 2018,value: 3000
                }
            ]
        },]

我已经使用lodash尝试了多种方法,但是它总是返回所有数据(而不是过滤)。

._filter(data,data => {
     return data.empInfo.salary[0].value === 3000
});

._each(data.empInfo.salary,data => {
     _.filter(data,d=>{
        return d.salary === 3000;
     });
});

._filter(data.empInfo.salary,data => {
    _.each(salary,s => {
        return s === 3000;
    });
});

有人可以最好使用lodash来帮助过滤此json

an_day 回答:使用lodash过滤WithIn数组中的数组

let newEmpInfo = empInfo.map( info => {
   return { ... info,salary: info.salary.filter( salary => salary.value === 3000 )};
});

这是最简单的方法,不需要lodash。 JS中的简单数组操作。

作为一个旁注,您应该下次添加编码尝试,就像通常在SO中出现的这类问题,人们只是来这里,以便我们解决他们的问题是不受欢迎的,并且通常会引起很多反对。

本文链接:https://www.f2er.com/3167956.html

大家都在问