如果object具有该属性,JavaScript将获取对象Array的值或属性

时间:2014-10-02 15:06:56

标签: javascript jquery arrays

说我有一个数组

var test = [{a: 26, b:14, c:null},{d:67, e: 8}];

说我想要c的值,我不知道c将具有什么值或哪个数组将具有c;

我正在考虑使用$.grep,但似乎我可以这样使用它

那我该如何获得c的价值?

修改

根据我的评论进行测试,你可以做到

$.grep(test,function(e){return e.hasOwnProperty('c')})

这将返回包含所需属性的对象/对象的数组

1 个答案:

答案 0 :(得分:2)

您需要在此处使用hasOwnProperty

for (var i = 0; i < test.length; i++) {
    if (test[i].hasOwnProperty('c')) {
        alert(test[i].c); // do something with test[i].c
        break; // assuming there is only ever 1 item called c, once we find it we can break out of the whole loop.
    }
}

正如您所建议的,$.grep也会起作用:

var objectsThatHaveC = $.grep(test, function(obj) {
    return obj.hasOwnProperty('c');
});

if (objectsThatHaveC.length) {
    alert(objectsThatHaveC[0].c); // assuming there's only 1 object with a 'c', otherwise you'd still have to loop here
}