簡體   English   中英

將數組解構為對象的語法是什么意思?

[英]What is the meaning of the syntax appearing to destructure an array into an object?

我正在閱讀有關函數式編程的這篇Medium 文章,但看到了一種我不熟悉的語法。 想知道是否有人可以解釋一下? 看起來好像作者正在將整個數組解構為一個對象,但我認為這對於一個和兩個來說是不可能的,我不確定它在這個函數中的作用是什么......有沒有人知道這里到底發生了什么嗎?

const reduce = (reducer, initial, arr) => {
  // shared stuff
  let acc = initial;
  for (let i = 0, { length } = arr; i < length; i++) {//<-- {length} = arr ??
    // unique stuff in reducer() call
    acc = reducer(acc, arr[i]);
  // more shared stuff
  }
  return acc;
};
reduce((acc, curr) => acc + curr, 0, [1,2,3]); // 6
  1. 數組的長度為屬性const x = [1,2,3]; console.log(x.length); // logs 3 const x = [1,2,3]; console.log(x.length); // logs 3

  2. 你可以像下面這樣解構對象

    const obj = {a: 1, b: 2}; const {a, b} = obj; console.log(a, b); // 記錄 1,2

  3. 您可以通過以 as var、let、const 開頭的逗號聲明新變量。

'y' 也是下面的 let 變量

let x = 0, y = 1;
console.log(x, y) // logs 0, 1
  1. let i = 0, { length } = arr; 解釋為 arr 是數組,其中長度為屬性。

    讓我 = 0,{長度} = arr; // 為聲明變量而寫的簡寫

可以寫成

let i = 0;
let {length} = arr;
  1. 如果你想解構一個數組,你不會使用{}而是你會使用[]

    const arr = [1,2,3,4,5]; const [a, b, ...c] = arr; console.log(a, b, c) // 記錄 1, 2, [3,4,5]

我希望現在清楚了

暫無
暫無

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

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