Javascript 两个对象/数组之间的差异
我有两个对象,它们是JSON中PHP的关联数组。它们的结构如下´:Javascript 两个对象/数组之间的差异,javascript,jquery,Javascript,Jquery,我有两个对象,它们是JSON中PHP的关联数组。它们的结构如下´: [object] ["green"] ['value1']=integer ['value1']=array... ["blue"] ['value1']=integer ['value1']=array... [...] 此对象的第一个版本使用JSON定期从Web服务器加载。 通过从webserver接收这个新的JSON字符串,当
[object]
["green"]
['value1']=integer
['value1']=array...
["blue"]
['value1']=integer
['value1']=array...
[...]
此对象的第一个版本使用JSON定期从Web服务器加载。
通过从webserver接收这个新的JSON字符串,当前对象移动到变量“oldObj”,而新数据存储到变量“newObj”中。
新对象的元素可能比旧对象少,如下所示:
[newObj]
["green"]
['value1']=integer
['value1']=array...
正如你所见:“蓝色”不见了
现在我需要这些元素,它们是旧对象的一部分/这意味着:在新对象中缺少这些元素(在本例中:元素“blue”)
我尝试了以下方法,但没有成功:
[...]
var newObj=data;
$.each (oldObj,function(i,n)
{if (newObj.i.length<1) {alert('missing: '+i);}
}
);//end foreach
[…]
var newObj=数据;
$.each(oldObj,函数(i,n)
{如果(newObj.i.length根据您的描述,我认为newObj或oldObj可以写成:
var newObj = {
"green": [
integer,
[array]
],
"blue": [
integer,
[array]
]
};
是这样吗
您可以使用:
for(p in Obj){
if(Obj.hasOwnProperty(p)){
// do something with p
}
}
循环遍历对象的属性。应该是newObj[i]
,但这也帮不了你。对象没有“长度”像数组一样。这可能会有帮助。@Felix Kling我搜索了Tour以便找到答案,但我没有找到你的链接。谢谢你-我会检查它。@Felix Kling@Neeraj+1-这些链接帮助我找到一个解决方案——与wong2的答案相结合。非常感谢!它不应该是(p in oldObj){if(newObj.hasownproperty(p)){//用p}做点什么?}@Bndr当然可以,我只是建议循环对象属性的一般方法。