javascript:检查数组中是否存在JSON对象

时间:2014-05-06 09:23:53

标签: javascript arrays json

认为这很简单,但它不是......我正试图检查,例如,这个json对象:

var strs = {
    strprop: "VALUE_A",
    strsub: "VALUE_B",
    subsub: "VALUE_C"
}

存在于名为regroup的数组中。此测试不起作用:

if(strs in regroup) {  //do stuff  }

由于

修改

regroup有以下数据:

[
    {
        "strprop": "répond ",
        "strsub": "au besoin suivant :",
        "subsub": "Economiser son carburant."
    },
    {
        "keyword": "coûte cher"
    },
    {
        "strprop": "répond ",
        "strsub": "au besoin suivant :",
        "subsub": "Economiser son carburant."
    },
    {
        "keyword": "carburant pollue"
    }
]

2 个答案:

答案 0 :(得分:1)

没有可用于将对象与JS中的另一个对象进行比较的通用方法。而是在@crazyx的answer

中建议了一种方法。
JSON.stringify(obj1) === JSON.stringify(obj2) 

在你的情况下,

for (var i=0; i<regroup.length; i++) { //iterate through each object in an array
     if (JSON.stringify(regroup[i]) === JSON.stringify(strs) ) {
             alert("EQUALS");
      }
}

JSFiddle

  

FYI: 键/值对的顺序应相同 否则上述方法将失败,example fiddle。< / p>

答案 1 :(得分:0)

var strs={strprop: "VAL_A", strsub: "VAL_B", subsub: "VAL_C"}; var reg=[strs, 1, "2345"]; for(elmnt in reg){ if(reg[elmnt]==strs)