簡體   English   中英

Javascript - 解構對象數組

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM