嗨我有一个巨大的json对象(约1500线),我想得到一些信息
{
level1:{
...
level2{
....
level3{
....
level4{
prop1:value1,
prop2:value2,
prop3:value3
}
}
}
}
}
要读取对象,我有以下代码
for(var key in prodOfferObj){
var prodOffLvl1 = prodOfferObj[key];
var prodOfferKey1 = key;
for(var param in prodOffLvl1){
var itemDescription=prodOffLvl1[param];
for(var j= 0, itemsLen=itemDescription.length; j<itemsLen; j++){
var item = itemDescription[j];
if(item.label ==='someValue'){.....}
....
如果value2是某个字符串,我想得到value1。
我想避免与对象进行交互,因为它很大,而且在上一步中我已经读过这个对象,但在第3级停止了。
唯一的方法是再次对所有对象进行交互?这个问题的主要目的是获得良好的表现/实践,并感觉它的开发工作量很大。
由于
答案 0 :(得分:0)
您可以在迭代期间保留对上一项的引用,这样您就不需要重新开始了。我认为这就是你要找的东西。
for(var param in prodOffLvl1){
var itemDescription=prodOffLvl1[param];
var prev = null;
for(var j= 0, itemsLen=itemDescription.length; j<itemsLen; j++){
var item = itemDescription[j];
if(item.label ==='someValue'){.....}
if (prev !== null) { // remember, the first one has no previous
console.log('I found value2, I want:', prev);
}
}
}
prev = item;
}