解决这种情况的最干净的方法是什么?

考虑到我有一个对象数组:

let originalArray = [{
  personName: 'Ben'
}];


我可以这样破坏:

const [{
  personName: name
}] = originalArray;

console.log(name); // "Ben"


但是,如果originalArray为空...

let originalArray = [];

const [{
  personName: name
}] = originalArray;


我得到这个错误

Uncaught TypeError: Cannot destructure property `personName` of 'undefined' or 'null'


我发现一些文章/文档解释了仅销毁一个对象时如何处理错误,但如果它是一个对象数组且该数组为空,则不会。

最佳答案

您可以为未定义的属性设置默认值

const [{
  personName: name = ''
} = {}] = originalArray;

console.log(name); // ""

09-10 11:18