簡體   English   中英

使用 ES6 銷毀對象

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

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