[英]Object destructing using ES6
我有這個嵌套對象,它也包含一個數組。
result:{
"a": [{ "b": { "c": 1,
"d": 2,
"e": 3
},
"f": 0
}]
}
如果我需要 d 的值,如何使用 ES6 解構這個對象?
對象解構符號就像對象文字符號一樣,只是在等號的另一邊。 所以你寫的正是你要寫的,只為d
創建必要的結構,並將你的d
變量/常量名稱放在那里。
看起來您正在向我們展示對象的內容(例如,它有一個名為result
的屬性),因此:
const obj = { result: { "a": [{ "b": { "c": 1, "d": 2, "e": 3 }, "f": 0 }] } }; const { result: { "a": [{ "b": { d } }] } } = obj; console.log(d);
我並不是說我會在這里使用解構。 事實上,我可能不會。 但是你可以。 :-)
如果result
是包含對象的變量,只需刪除該層:
const obj = { "a": [{ "b": { "c": 1, "d": 2, "e": 3 }, "f": 0 }] }; const { "a": [{ "b": { d } }] } = obj; console.log(d);
當然,這就是把你按面值的問題,你想d
從第一個條目a
。 您可以將其概括為這樣獲得條目n
(我又回到假設result
是對象的一部分):
const obj = { result: { "a": [ { "b": { "c": 1, "d": 2, "e": 3 }, "f": 0 }, { "b": { "c": 1, "d": 4, // *** "e": 3 }, "f": 0 } ] } }; const n = 1; // Which entry in `a` to get const { result: { "a": { [n]: { "b": { d } } } } } = obj; console.log(d);
我使用的對象解構為a
而不是陣列解構,用計算出的屬性名稱。 我可以這樣做,因為數組是對象。
數組解構符號就像數組文字符號一樣。 :-)
你想要 d 的值嗎?
result.a[0].b.d ?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.