Запрос объектов с массивом (без стороннего скрипта) - PullRequest
1 голос
/ 20 августа 2010

Как вы можете запросить объект с массивом?

var myArray = ['A','C']

Используя myArray, как я могу получить возвращенный массив с ['1', '3'] из следующего (ранее объект JSON) (без использования стороннего сценария запроса - если только это не jQuery:)

[ { "property1": "1", 
    "property2": "A"
   },
  { "property1": "2", 
    "property2": "B"
   },
  { "property1": "3", 
    "property2": "C"
   } ]

Ответы [ 2 ]

4 голосов
/ 20 августа 2010

Вы можете использовать вложенный цикл:

var myArray = ['A','C'];
var json = [{ 
    'property1': '1', 
    'property2': 'A'
}, { 
    'property1': '2', 
    'property2': 'B'
}, { 
    'property1': '3', 
    'property2': 'C'
}];

var result = new Array();
for (var i = 0; i < myArray.length; i++) {
    for (var j = 0; j < json.length; j++) {
        if (json[j].property2 === myArray[i]) {
            result.push(json[j].property1);
        }
    }
}

// at this point result will contain ['1', '3']
2 голосов
/ 20 августа 2010

Вы можете пройти массив так:

var json = [ { "property1": "1", 
    "property2": "A"
   },
  { "property1": "2", 
    "property2": "B"
   },
  { "property1": "3", 
    "property2": "C"
   } ];

var myArray = ['A', 'C']; // Here is your request
var resultArray = []; // Here is the container for your result

// Walking the data with an old-fashioned for loop
// You can use some library forEach solution here.
for (var i = 0, len = json.length; i < len; i++) {
    var item = json[i]; // Caching the array element

    // Warning! Not all browsers implement indexOf, you may need to use a library
    // or find a way around
    if (myArray.indexOf(item.property2) !== -1) {
        resultArray.push(item.property1);
    }
}

console.log(resultArray);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...