javascript:检查数组中是否存在JSON对象
我以为这很简单,但不是。。。例如,我试图检查这个json对象:javascript:检查数组中是否存在JSON对象,javascript,arrays,json,Javascript,Arrays,Json,我以为这很简单,但不是。。。例如,我试图检查这个json对象: var strs = { strprop: "VALUE_A", strsub: "VALUE_B", subsub: "VALUE_C" } 存在于名为重组的数组中。此测试不起作用: 谢谢 编辑 重组有以下数据: [ { "strprop": "répond ", "strsub": "au besoin suivant :", "subsub":
var strs = {
strprop: "VALUE_A",
strsub: "VALUE_B",
subsub: "VALUE_C"
}
存在于名为重组的数组中。此测试不起作用:
谢谢
编辑
重组
有以下数据:
[
{
"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"
}
]
在JS中,没有通用方法可用于将对象与另一个对象进行比较。取而代之的是,在这个@crazyx的文章中建议了一种方法 就你而言
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");
}
}
用于(var i=0;iit不起作用。在重新组合其他对象时?在javascript中为新对象!=new Object重新组合的内容是什么?条件何时应计算为true?非常感谢,这是我一直在寻找的结果。@Spadon\ux:这不是你应该做的。它不必要地昂贵,而且可能会在没有警告的情况下失败。JSON序列化不会保证对象属性序列化的顺序。使用不保证的结构是个坏主意。
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");
}
}
var strs={strprop: "VAL_A", strsub: "VAL_B", subsub: "VAL_C"}; var reg=[strs, 1, "2345"]; for(elmnt in reg){ if(reg[elmnt]==strs)