Если вы ищете более решение «одной линии», вы можете использовать JS функция массива find
:
($rootScope.roles.find(function (x) { return x.role_id == 2; }) || {}).role_name;
Когда он не найден, то возвращается find
null
так что я замещенными, что возможный результат по {}
поэтому d oes не генерирует исключение при доступе к . Таким образом он вернет undefined
, если указанный role_id
не найден.
Примечания Этого методом является новой технологией и не будет доступны в любом браузере, подробнее в https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/find
Другим «однострочный» более стабильное решение было бы использовать filter
:
($rootScope.roles.filter(function (x) { return x.role_id == 2; })[0] || {}).role_name;
Этот другой метод является более стабильным и может быть найден в любом браузере, подробнее в https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter
Взгляните на это: http://stackoverflow.com/questions/12462318/find-a-value-in-an-array-of-objects-in-javascript Помогает ли это? – Rodmentou