如果键不存在于数组内的对象中,则需要帮助将函数写入 return 空数组

Need help writing a function to return an empty array if key doesn't exist as a within objects inside of an array

我正在 Gatsby/React 开发无头 Shopify 应用程序。我需要一些帮助来处理我从 Shopify 取回的数据。

下面是数据的示例:

product.options = [
  {
    name: 'Size',
    values: ['S', 'M', 'L', 'XL', 'XXL'],
  },
  {
    name: 'Colour',
    values: ['Terrazzo Berry'],
  },
];

我想为颜色创建一个键值变量。

const colours =
    product.options.find((option) => option.name.toLowerCase() === 'colour')
      .values || [];

唯一的问题是,如果名为 colors 的对象中没有键,我会收到以下错误:

TypeError: undefined is not an object (evaluating 'product.options.find(function (option) {
    return option.name.toLowerCase() === 'colour';
  }).values')

如果我正在搜索的键不存在,有人可以帮我写一些代码 returns 一个空对象

访问.values键前需要设置默认值

const colours =
    (product.options.find((option) => option.name.toLowerCase() === 'colour')
      || {values: []}).values;

      // ^^^^^^^^^^^^
      // You can use whatever value you want, i've use array as default value

我的代码有什么问题?

在您的代码中,如果未找到密钥 find 函数 returns undefined 并且您具有 .values 属性 访问权限,那么您最终得到一个错误