JavaScript 解构理解的问题

Problem with JavaScript destructuring understanding

我希望从下面的 JavaScript 我会得到 [1,2,3,4] 但我得到 undefined.

const {
  speakers: {
    datalist: { xxx },
  },
} = {
  speakers: {
    datalist: [1, 2, 3, 4],
  },
};
console.log(xxx);

当你这样做时

datalist: { xxx },

你告诉 JS 将 datalistxxx 属性 放入一个名为 xxx 的独立变量中。但是 [1, 2, 3, 4] 数组中不存在 xxx 属性。

如果代码像这样就可以了:

const {
  speakers: {
    datalist: { xxx },
  },
} = {
  speakers: {
    datalist: {
      xxx: [1, 2, 3, 4],
    }
  },
};
console.log(xxx);

或:

const {
  speakers: {
    datalist
  },
} = {
  speakers: {
    datalist: [1, 2, 3, 4],
  },
};
console.log(datalist);

但是这种嵌套的解构非常难读。考虑避免它,以免出现这些问题:

const obj ={
  speakers: {
    datalist: [1, 2, 3, 4],
  },
};
const { datalist } = obj.speakers;
console.log(datalist);