Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/390.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 用于检查对象数组中是否存在变量的条件_Javascript_Arrays_Object_Underscore.js - Fatal编程技术网

Javascript 用于检查对象数组中是否存在变量的条件

Javascript 用于检查对象数组中是否存在变量的条件,javascript,arrays,object,underscore.js,Javascript,Arrays,Object,Underscore.js,我有一个名为data的数组,如下所示,还有一个名为obj1的对象数组 var data = ["004", "456", "333", "555"]; obj1 = [{ id: "004", name: "Rick", Active: "false" }, { id: "005", name: 'david', Active: "false" }]; 我检查数组数据的元素是否存在于obj1中。这就是代码。它将给出“004”作为答案,因为obj1中存

我有一个名为
data
的数组,如下所示,还有一个名为
obj1
的对象数组

var data = ["004", "456", "333", "555"];


obj1 = [{
  id: "004",
  name: "Rick",
  Active: "false"
  }, {
    id: "005",
    name: 'david',
    Active: "false"
}];
我检查数组
数据
的元素是否存在于
obj1
中。这就是代码。它将给出
“004”
作为答案,因为
obj1
中存在
004

out = [];

_.each(arr, function(value1, key1, obj1) {
   _.each(data, function(value, key, obj) {
        if (value1.id == value) out.push(value);
   });
});

console.log(out);
现在我想添加以下内容

var Activecheck = false;

我想检查arrray
data
的元素是否存在于
obj1
中,其中
obj1.Active
字段等于false。是否可以将此变量添加到我的代码中,以便检查此条件?

使用Array.filter可能会更干净,如下所示:

var activeCheck = "false";
var out = obj1.filter(function(item) {
  return item.active === activeCheck && data.includes(item.id);
});
使用下划线,使用以下命令:

var数据=[“004”、“456”、“333”、“555”];
obj1=[{
id:“004”,
姓名:“瑞克”,
活动:“假”
}, {
id:“005”,
姓名:'大卫',
活动:“假”
}];
var结果=389;.filter(obj1,函数(值){
返回data.indexOf(value.id)>-1&&value.Active==“false”;
});
控制台日志(结果)

您可以简单地使用filter和include来实现您想要的功能

var数据=[“004”、“456”、“333”、“555”];
变量obj1=[{
id:“004”,
姓名:“瑞克”,
活动:“假”
}, {
id:“005”,
姓名:'大卫',
活动:“假”
}];
var结果=obj1.过滤器((ele,idx)=>{
返回数据。包括(ele.id)和&ele.Active==“false”;
});

控制台日志(结果)
如果(value1.id==value&&value1.Active==false)
您可以在条件Active=false的情况下过滤obj1数组。它将只为您提供活动为false的对象。使用Array.filter,然后可以使用Array.some检查筛选后的数组中是否存在值。@Amir-值“Activecheck”可以是true或false,并且本质上是动态的。因此,我不能直接将条件设置为false。
如果(value1.id==value&&value1.Active==Activecheck)
var isActive = "false"; // get that value dynamically
var result = _.filter(obj1, function(value) {
  return data.indexOf(value.id) > -1 && value.Active === isActive;
});