2015-11-24 4 views
1

У меня есть объект, который выглядит так. В основном мне нужно перебирать массив filterNameList и вытаскивать первое значение в каждом из объектов, принадлежащих filterNameList, оно всегда будет значением [0]. Имея некоторые проблемы с получением этих извлеченных для отображения на странице.angularjs looping logic, forEach

acceptableFlag: "True" 
filterNameList: Array[5] 
    0: Array[2] 
     0: "Asia" 
     1: 20000 
    1: Array[2] 
     0: "China" 
     1: 20001 
    2: Array[2] 
     0: "Beijing" 
     1: 50000 
reportId: 48 
reportName: "Multiple" 

Будет ли работать следующая функция?

function filterLabel(data){ 
    angular.forEach(data, function(obj, i){ 
     angular.forEach(obj, function(filterNameList, i){ 
      if (filterNameList.filterNameList == 20000){ 
       filterNameList.filterLabel = "Region" 
      } 
     }) 
    }) 
}; 
+0

Почему вы используете angular.forEach в отличии от 'data.filterNameList.forEach (функции (список имен, я) {})' –

+0

в течение других мест в коде я видел angular.forEach используется, поэтому я принял его и – Buccaneer

ответ

3

obj также является массивом. Вам придется либо вложить петлю, либо сделать статическое значение индекса.

if(obj[1] == 20000){ 
    obj.regionName = "Region" 
} 
1

Назначение объекта объекту Array не является хорошим способом сделать это. Вы можете сделать что-то вроде

filterNameList.forEach(function(obj, i){ 
    if(obj[1] == 20000){ 
     obj.push("Region") 
    } 
    else if (obj[1] == 20001){ 
     obj.push('Country'); 
    } 
    else if (obj[1] == 50000){ 
     obj.push('City'); 
    } 

}); 
+0

так было бы так: функция filterLabel (data.filterNameList) { filterNameList.forEach (функция (объект, я) { если .... } } – Buccaneer

+0

Право .. после этого ваши вспомогательные массивы будут содержать по 3 элемента каждый –

+0

Я получаю сообщение об ошибке «Не функция/не определена» – Buccaneer