如何检查对象是否有一些元素

时间:2013-09-13 17:44:29

标签: jquery json

我有jquery ajax收到的2个对象 -

我需要在它们之间显示一个交叉,意味着对象1的所有元素和对象2中不存在于对象1中的所有元素

$.each(user[0],function(key,value){
    var div = $("<div></div>");
    div.html("key: "+key + " value: "+value);
    div.appendTo(maindiv);
});

$.each(userLogin[0],function(key,value){
    if(user[0][key]=='undefined'){
        var div = $("<div></div>");
        div.html("key: "+key + " value: "+value);
        div.appendTo(maindiv);
    }

});

但由于此处的“key”是数字元素,因此该逻辑失败 如何检查“userLogin [0]是否有用户[0]中存在的任何键?

1 个答案:

答案 0 :(得分:1)

您应该能够这样做以查看某个对象是否具有某个属性:

if(!user[0].hasOwnProperty(key)){

您当前的版本无效,因为您正在将undefined(常量)与'undefined'(字符串)进行比较。见:

http://jsfiddle.net/Zr7VJ/

var obj = {}

console.log(obj['someProp'] === 'undefined');  // false
console.log(obj['someProp'] === undefined); // true
console.log(typeof obj['someProp'] === 'undefined'); // true