[英]Javascript - destructuring array of objects
試圖更好地掌握解構。
如果我有這樣的對象:
const starWars = {
count: 2,
data: [
{name: 'Luke Skywalker', films: ['Empire Strikes Back', 'The Force Awakens']},
{name: 'Han Solo', films: ['New Hope', 'Return of the Jedi']}
]};
我可以像這樣解構數據部分:
const {data: allCharMovies} = starWars;
console.log(allCharMovies[1].name);
或者我可以嘗試這樣做:
const { count, data: [{name: nameCh, films: movies}]} = starWars;
console.log(nameCh, movies[1]);
但這僅提供了我的“盧克·天行者”電影 - 如果我以第二種方式進行,我如何訪問“漢索羅”部分?
您可以在解構data
同時在數組中添加另一個解構對象:
const starWars = { count: 2, data: [ { name: 'Luke Skywalker', films: ['Empire Strikes Back', 'The Force Awakens'] }, { name: 'Han Solo', films: ['New Hope', 'Return of the Jedi'] } ] }; const { count, data: [ { name: nameCh, films: movies }, { name: name2, films: movies2 } ] } = starWars; console.log(nameCh, movies[1]); console.log(name2, movies2[1]);
此外,您可以使用其余語法來獲取除第一部電影之外的所有電影:
const starWars = { count: 2, data: [ { name: 'Luke Skywalker', films: ['Empire Strikes Back', 'The Force Awakens'] }, { name: 'Han Solo', films: ['New Hope', 'Return of the Jedi'] }, { name: 'Chewbacca', films: ['New Hope', 'The Force Awakens', 'The Last Jedi'] } ] }; const { count, data: [{ name: nameCh, films: movies }, ...otherMovies] } = starWars; console.log(nameCh, movies[1]); console.log(otherMovies[0].name, otherMovies[0].films[1]); console.log(otherMovies[1].name, otherMovies[1].films[2]);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.