检查JavaScript对象中是否存在值

Sha*_*eKm 10 javascript jquery

如果存在特定项目(在我的情况下,机箱ID为id 2),我将如何检查我的对象数组?

[{"MachineID":"1","SiteID":"20"},{"MachineID":"2","SiteID":"20"},{"MachineID":"3","SiteID":"20"},{"MachineID":"4","SiteID":"20"}]
Run Code Online (Sandbox Code Playgroud)

我试过这个:

if (index instanceof machineIds.MachineID) {
    alert('value is Array!');
} else {
    alert('Not an array');
}
Run Code Online (Sandbox Code Playgroud)

Vis*_*ioN 13

在跨浏览器方式中,您可以使用jQuery.grep()它的方法:

var item = $.grep(machineIds, function(item) {
    return item.MachineID == index;
});

if (item.length) {
    alert("value is Array!");
}
Run Code Online (Sandbox Code Playgroud)


hvg*_*des 5

最简单易懂的解决方案是循环遍历数组,并检查每个数组.

var match;
for (var i = 0; i < yourArray.length; i++) {
   if (yourArray[i].MachineId == 2) 
        match = yourArray[i];
}
Run Code Online (Sandbox Code Playgroud)

请注意,如果有多个匹配项,则返回最后一个.你也可以在一个功能中打扮.

function findByMachineId(ary, value) {
   var match;
    for (var i = 0; i < ary.length; i++) {
       if (ary[i].MachineId == value) 
            match = ary[i];
    }
    return match;
}
Run Code Online (Sandbox Code Playgroud)