2015-04-09 5 views
1

Я его основной, но я новичок в javascript. Я пытаюсь пройти через массив и сопоставить объекты, которые == my key.Как перебрать массив с javascript

Это то, что я использую прямо сейчас, оно работает, но я совпадаю только с первым объектом, который соответствует, иногда будет несколько объектов, которые соответствуют.

Вот что я сейчас

var chartSeries = chartService.getSeries(); 
var marker.options.subdivision.id = 1345 
var matchingSeries = Enumerable.From(chartSeries).Where('x => x.id == "' + marker.options.subdivision.id + '"').ToArray(); 
    var series = { 
     id: matchingSeries[0].id, 
     name: matchingSeries[0].name, 
     data: matchingSeries[0].data, 
     lineWidth: 5 
    }; 

Мне нужно включать в цикл, чтобы соответствовать всем объектам.

var subIdSeries = []; 
    var subId = marker.options.subdivision.id; 
    var series = { 
     id: matchingSeries[0].id, 
     name: matchingSeries[0].name, 
     data: matchingSeries[0].data, 
     lineWidth: 5 
    }; 

    for (var i = 0; i < chartSeries.length; i++) { 

     if (subId == chartSeries.id) { 
      push.subIdSeries(subId) 
     } 
    } 
+0

Должен ли он быть ' subIdSeries.push (subId) 'вместо' push.subIdSeries (subId) '? –

+0

вы можете использовать [Array.map] (https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Array/map) или [Array.forEach] (https: //developer.mozilla .org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/forEach) или [Array.filter] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/ Global_Objects/Array/фильтр) – Grundy

ответ

3

Изменить

if (subId == chartSeries.id) { 
    push.subIdSeries(subId) 
} 

в

if (subId == chartSeries[i].id) { 
    subIdSeries.push(subId) 
} 
2

Не видя весь сценарий, от того, что у вас есть до сих пор, я могу предложить:

if (subId == chartSeries[i].id) { 
    subIdSeries.push(subId) 
} 
Смежные вопросы