如何筛选多维数据JSON对象

时间:2017-07-02 21:38:07

标签: arrays json actionscript-3 actionscript

我有一个包含许多json对象的Json字符串,每个json都有一个键,我使用JSON.parse将字符串放入一个对象。

然后我按以下格式提取我需要的内容

json['product1'][0].name

但是,我想根据另一个元素的值从每个json对象中获取一个元素数组。目前我正在使用:

for each (var row:Object in json) {

    if (row[0][filterElement] == filterValue) {
        arr.push(row[0][element]);
    }

}

这是一个好方法吗?我问,因为我似乎每次都要浏览整个json对象。

1 个答案:

答案 0 :(得分:0)

如果我已正确理解您的问题,您可能会想要使用.map.filter

所以如果我们有一个像......这样的对象。

var obj = {
    people: [
       {name: 'person1'},
       {name: 'person2'},
       {name: 'person3'},
       {name: 'person4'},
    ]
};

然后,您可以使用.map创建一个新的名称数组...

var names = obj.people.map(function(person){
     return person.name;
}); // ['person1', 'person2', 'person3', 'person4']

在这个数组上,您可以使用.filter ...

var filter = 'person2';
var filteredNames = obj.people.map(function(person){
         return person.name;
    }).filter(function(name){
        return name == filter; // if true, will push name into a name into our new array
    }); // 'person2'

这显然是一个基本的例子,但相同的概念将适用于您的问题中适用的精确属性。希望这会有所帮助。