@KOPC1886

Как найти ключ массива по значению в многомерном массиве ?

Написал такой код, все работает, но может есть функция javascript ?
if($routeParams.categoryId.length != 0)
        {
            angular.forEach($rootScope.categories, function(value, key){
                 if(value.id == $routeParams.categoryId)
                 {
                    $scope.selectedCategory = $rootScope.categories[key];
                 }
            });
        }
  • Вопрос задан
  • 2453 просмотра
Пригласить эксперта
Ответы на вопрос 3
@Everlier
Массив точно многомерный? Судя по одной итерации это не так, в таком случае нативный for() будет немного побыстрее.

Помимо этого есть Array.indexOf(object, from), но это подходит только если у вас есть ссылка на искомый объект.
Но, судя по коду это не ваш случай, поэтому наверняка придется использовать цикл.
Ответ написан
Комментировать
@KOPC1886 Автор вопроса
У меня массива такого вида:

$array[0] = array('id' => 119);
$array[1] = array('id' => 120);
$array[2] = array('id' => 121);
Ответ написан
Комментировать
AMar4enko
@AMar4enko
Нативной функции нет.
Если вы не против underscore или lodash, то
_.find($rootScope.categories, {id: $routeParams.categoryId})
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы