Как я могу получить индекс от каждого элемента из json и вывести его в виде массива

#javascript #arrays #json #multidimensional-array

Вопрос:

У меня есть этот код json:

  "genres":[{"id":28,"name":"Action"},{"id":53,"name":"Thriller"},{"id":878,"name":"Science Fiction"}]
 

Как я могу получить в Javascript только идентификатор от каждого типа:

 ['28', '53', '878']
 

Мне нужно, чтобы эти значения были выбраны в select2

 $('#gen').select2().select2('val', ['28', '53', '878']);            
 

Спасибо!

Комментарии:

1. $('#gen').select2().select2('val', data.genres.map(el => String(el.id)));

2. Идентификаторы должны быть строками. Сработает ли это @Ник?

3. Это будет сейчас.. 🙂

4. @Ник у меня есть запись $('#gen').select2().select2('val', json.map(el => String(el.id))); , но я выбираю только первое значение, это 28, почему?

5. Не уверен. Может быть, что-то не так со структурой вашего JSON? Вы можете увидеть здесь, как это работает: codesandbox.io/s/sweet-yalow-esvdh?file=/src/index.js:248-265

Ответ №1:

 var filter = genres.map(x => x.id)
$('#gen').select2().select2('val', filter);