2014-10-20 2 views
1

Я получаю объект Javascript в следующем форматеПроверить наличие элемента в гнездовом яваскрипте массива объектов

{ 
"Alerts": [{ 
     "Name": "...", 
     "Type": "Warning", 
     "Message": "...", 
     "Time": "..." 
    }, 
    { 
     "Name": "...", 
     "Type": "Critical", 
     "Message": "...", 
     "Time": "..." 
    }, 
    { 
     "Name": "...", 
     "Type": "Info", 
     "Message": "...", 
     "Time": "..." 
    }] 
} 

Как проверить, если тревога типа Critical существует где-нибудь в этом массиве объект, который я получаю.

Я использую angularjs.

+0

использовать underscore.js. вы можете использовать метод find. – harishr

+0

Или lodash http://stackoverflow.com/questions/13789618/differences-between-lodash-and-underscore –

+1

if (data.Alerts.filter (функция pluck (a) {return a [this]}, «Message») .indexOf ("Critical")! == - 1) {alert ("oh noes!");} – dandavis

ответ

2

Если вы ищете угловой вид вещи, Создать фильтр,

app.filter('checkCritical', function() { 
    return function(input) { 
     angular.forEach(input, function(obj) { 
      if((obj.Type).toLowerCase() == 'critical') { 
       return true; 
      } 
     }); 
     return false; 
    }; 

}) 

использовать этот фильтр внутри контроллера

в контроллере,

var exists = $filter("checkCritical").(Alerts); 

Не забудьте ввести $filter в контроллер

-1

Вам нужно будет пропустить каждый элемент массива и проверить, есть ли у каких-либо объектов значение «Критический» в качестве значения свойства «Тип».

2

Вы можете сделать что-то вроде этого

function find(arr, key, text){ 
    for(var i = arr.length; i--;){ 
     if(arr[i][key] === text) return i; 
    } 
    return -1; 
} 

Использование

var index = find(jsonObject.Alerts, "Type", "Critical") 
0

Если у вас есть JQuery на этой странице.

var exists = $.grep(alerts, function (e) { return e.Type == 'Critical'; }).length > 0; 

Примечание: alerts (как описано выше) будет массив предупреждений, которые есть в вашем объекте есть.

Ссылка:

http://api.jquery.com/jquery.grep/

Смежные вопросы