簡體   English   中英

解構嵌套對象

[英]Destructuring Nested Object

我正在嘗試玩ES6,並嘗試將ES5函數轉換為ES6。

ES5:

const ResponseData = {
    items: [{name: 'Matt'}]
}

function getName(ResponseData) {
    let itemDetails = ResponseData && ResponseData.items && ResponseData.items[0];
    return itemDetails.name;
}

但是,我不確定如何在ES6解構中訪問items [0]。

這是我的嘗試:

function getItemES6(ResponseData) {
 const { items : item = []   } = ResponseData;
 return item;
}

這幾乎給了我項目數組,我如何獲取項目[0]並使用ES6檢查.name?

很少與破壞混淆。 有人可以開導嗎?

您可以解構嵌套的對象和數組,添加add空對象/數組作為默認值,以在值不存在時得到undefined

 const ResponseData = { items: [{name: 'Matt'}] }; const getItemES6 = ({ items: [{ name } = {}] = [] }) => name; console.log(getItemES6(ResponseData)); 

您可以這樣分解對象:

const { key: yourVar = 'defaultVal' } = obj

數組是相似的,但是不是引用鍵,而是引用元素本身: const [ firstElem, secondElem ] = arr

 const obj = { a: 1, b: { b1: 'a' } }; const objWithArr = { a: 1, b: [{ key: 5, }, { key: 6 }] } const { b: { b1: b1Val = 'default', } = {}, } = obj; const { b: [{ key: firstKey, } = {}, { key: secondKey, } = {} ] = [], } = objWithArr; console.log(b1Val); console.log(firstKey); console.log(secondKey); 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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