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;
我想检查arrraydata
的元素是否存在于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;
});