Как правильно обратиться к объекту в массиве в объекте?
Имеется структура такого вида:
[
{
"Emails": [{
"id": 9,
"user_id": 1,
"email": "[email protected]"
}],
"Something": [{
"id": 1,
"name": "some"
}]
}
]
Как правильно обратиться к значению email? На данный момент я сделал перебор по массиву и пробовал обратиться как-то так:
//.foreach(item)
item["Emails"][0]["email"]
Но так я не получаю искомое
Ответы (2 шт):
Автор решения: XelaNimed
→ Ссылка
Сначала обратитесь к массиву:
const obj = [{
"Emails":
[{
"id": 9,
"user_id": 1,
"email": "[email protected]"
}],
"Something":
[{
"id": 1,
"name": "some"
}]
}];
console.log("email: %s", obj[0].Emails[0].email);
obj.forEach(function(item){
console.log("in foreach email: %s", item.Emails[0].email);
});
Автор решения: Pavel Nazarian
→ Ссылка
Смею допустить, что Emails как массив тоже может содержать не один элемент.
let arr = [
{
"Emails": [{
"id": 9,
"user_id": 1,
"email": "[email protected]"
},{
"id": 8,
"user_id": 3,
"email": "[email protected]"
}],
"Something": [{
"id": 1,
"name": "some"
}]
},
{
"Emails": [{
"id": 9,
"user_id": 1,
"email": "[email protected]"
},{
"id": 8,
"user_id": 3,
"email": "[email protected]"
}],
"Something": [{
"id": 1,
"name": "some"
}]
}
]
const test1 = () => {
return arr.map(({Emails}) => Emails.map(e => e.email));
}
const test2 = () => {
return arr.reduce((acc,{Emails}) => {acc.push(...Emails.map(e => e.email)); return acc;} ,[])
}
console.log(test1())
console.log(test2())