如何在javascript中减少和过滤数组

How to reduce and filter arrays in javascript?

本文关键字:过滤 数组 javascript      更新时间:2023-09-26

所以我想按如下方式过滤我的数组:

比方说我的array1 = ['c', 'd']

我的数据数组 =

[{
    "userid": "a",
    "age": 19,
    "name": "john"
}, {
    "userid": "c",
    "age": 119,
    "name": "joy"
}, {
    "userid": "d",
    "age": 119,
    "name": "jesse"
}]

我想过滤掉我的数据数组,以便只有数据数组中的那些对象,其用户 id 值存在于 array1 中。

预期成果:

new data array = [{
    "userid": "c",
    "age": 119,
    "name": "joy"
}, {
    "userid": "d",
    "age": 119,
    "name": "jesse"
}]

为了让你更好地理解,添加没有lambda表达式的Tushar解决方案,

newDataArray = dataArray.filter(function(item) {return array1.includes(item.userid)})

在 ES5 中:

var newDataArray = dataArray.filter(function (item) {
    return array1.indexOf(item.userid) !== -1;
});

var a1 = [
    {
        "userid": "a",
        "age": 19,
        "name": "john"
    },
    {
        "userid": "c",
        "age": 119,
        "name": "joy"
    },
    {
        "userid": "d",
        "age": 119,
        "name": "jesse"
    }
];
var a2 = ['c','d'];
var newObj = [];
a1.filter(function(object,index){
    var x = object.userid;
    a2.filter(function(userId){
    if(x==userId){
      newObj[index-1] = object;
    }  
   });
});
console.log(JSON.stringify(newObj));