JQuery - Поиск в списке объектов для этих объектов с переменной конкретного члена, установленной в значение?

0

Скажем, у меня есть объект JS, например:

{categories : [{id:1, name:"foo", items:[{id:1, name="bar"},{id:2,name:"baz"]}]}

Учитывая первую категорию (индекс 0) и идентификатор элемента, я хотел бы иметь возможность найти имя элемента.

В python мы могли бы сделать что-то очень чистое:

x.name for x in categories[0].items where x.id = 1

Каков самый чистый и самый короткий способ выразить это в jQuery/JS?

Теги:

1 ответ

2
Лучший ответ

Используя метод filter Array:

categories[0].items.filter( function(x){ return x.id == 1 });

Изменить после редактирования:

найти имя элемента, где x = 1

categories[0].items.filter( function(x){ return x.id == 1 })[0].name;

если вы знаете, что есть только один элемент, или вы хотите только первый, или объединить .filter с .map чтобы получить список имен:

categories[0].items.filter( function(x){ return x.id == 1 }).map( function(x){ return x.name })

скрипка: http://jsfiddle.net/6W2qa/1/

  • 0
    Отлично. Я дам вам ответ независимо от курса, но не могли бы вы продемонстрировать, как найти ответ, если вы не знаете, какую категорию вы выбираете? (Мне нужно подождать 2 минуты, прежде чем дать ответ)
  • 0
    @ MatthewMoisen вы имеете в виду, что если вы не знаете категорию? Я бы использовал categories.forEach( function(cat){ /* get the name like in the example using cat.items.filter(...) */ })

Ещё вопросы

Сообщество Overcoder
Наверх
Меню