如何在数组中获取value属性?

时间:2014-05-23 14:47:53

标签: javascript jquery json

我正在使用recusion解析json。我调用我的函数本身。我的json“array”和“list”中有两个数组。我需要获取“label”的属性并保存在array中。我需要保存值标签内部的“list”和“label”的单独数组。我正在尝试这样做但我触及了我的概念。我需要保存在数组中,如果它属性来自“数组”(json)我需要添加不同的数组如果属性来自“list”.Property是label。

http://jsfiddle.net/mVz3E/

var arrayLabel=new Array();
var listLabel=new Array();
function recursiveIteration(object, callback) {
    for (var property in object) {
        if (object.hasOwnProperty(property)) {
            if (typeof object[property] == "object"){
                recursiveIteration(object[property], callback);
            }else{
                //found a property which is not an object, check for your conditions here
                callback(object, property);

            }
        }
    }
}

function test_cb(object, property){
    if(property == "label" && object[property]&& object instanceof Array))
    {

        arrayLabel.push(object[property])

    }
}

1 个答案:

答案 0 :(得分:0)

我确实设法使用你的函数来检索标签,但我不明白listLabel数组的样子。

DEMO 已更新

 var json = {...};

 function test_cb(object, property, data) { 
   var array = [];
   if(data.filter(object, property) && object[property]){
     data.array.push(object[property]);
   }
 }

 recursiveIteration(json, test_cb, {
   array: arrayLabel, 
   filter: function(object, property){
          return (property == 'label' && !object.array);
        }
 });
 recursiveIteration(json, test_cb, {
 array: listLabel, 
   filter: function(object, property){
     console.dir(object);
     return (property == 'label' && !!object.list);
   }
 });

 console.log('arrayLabel',arrayLabel);
 console.log('listLabel',arrayLabel);
 document.body.textContent = 'arrayLabel: ' + arrayLabel.join(', ') + 
                      ' - listLabel: ' + listLabel.join(', ');