#javascript #arrays #json #object #underscore.js
#javascript #массивы #json #объект #underscore.js
Вопрос:
Я хочу найти g:id
объект в приведенном ниже массиве объектов
Если мой g:id
похож "g:id": "121"
Я могу найти элемент, подобный
var item = _.findWhere(obj, {'g:id': '121'});
Но то, что у меня есть, "g:id": ["121"]
похоже на массив. Как я могу это найти?
Вот мой массив объектов.
[
{
"g:id": [
"121"
],
"g:item_group_id": [
"90461"
]
},
{
"g:id": [
"129"
],
"g:item_group_id": [
"90462"
]
}
]
Я пробовал так var item = _.findWhere(jsonXML, {'g:id'.[0]: '121'});
, но это недопустимо.
Как я могу это сделать с помощью underscore.js или любым другим способом?
Комментарии:
1. могли бы вы
"g:id": ["121", "129"]
?
Ответ №1:
Вы можете использовать Array.find()
с деструктурированием, чтобы получить g:id
значение из массива:
const arr = [{"g:id":["121"],"g:item_group_id":["90461"]},{"g:id":["129"],"g:item_group_id":["90462"]}]
const result = arr.find(({ 'g:id': [gid] }) => gid === '121')
console.log(result)
Другой вариант — использовать Array.includes()
, чтобы увидеть, содержит ли массив значение (обязательно, если массив может содержать более одного значения):
const arr = [{"g:id":["121"],"g:item_group_id":["90461"]},{"g:id":["129"],"g:item_group_id":["90462"]}]
const result = arr.find(({ 'g:id': gid }) => gid.includes('121'))
console.log(result)
Комментарии:
1. Это сработало как шарм, спасибо, принимаю ответ еще через 7 минут 🙂