javascript读取巨大的json对象

时间:2015-09-25 15:07:56

标签: javascript jquery json performance object

嗨我有一个巨大的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级停止了。

唯一的方法是再次对所有对象进行交互?这个问题的主要目的是获得良好的表现/实践,并感觉它的开发工作量很大。

由于

1 个答案:

答案 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;
}