我需要检查一个对象是否在逻辑上在数组中,当两个对象在逻辑上相等时(就像Java中的equals
),它将被视为“在”数组中
当我使用 jQuery
的 $.inArray
测试下面的代码时,它返回 -1,表示复制的一个不被视为“在”数组中。
var a =[{value: "G27", title: "G27"}];
$.inArray({value: "G27", title: "G27"},a); //returns -1
以上只是一个例子,generic有没有简单的方法来实现
最佳答案
解决方法是检查 for 循环中的每个键值对:
function exist(arr, obj){
var len = Object.keys(obj).length;
var count = 0;
for(var i=0;i<arr.length;i++){
count=0;
for(var key in obj){
if(obj[key] == arr[i][key]){
count++;
}
}
if(count == len && count == Object.keys(arr[i]).length){
console.log("Exists!!");
return;
}
}
console.log("Don't exist!!");
}
var arr =[{value: "G27", title: "G27"}];
var b = {value: "G27", title: "G27"};
//Call
exist(arr, b);
关于javascript - 如何检查对象是否在逻辑上位于数组中,JavaScript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30369559/