如果键不存在于数组内的对象中,则需要帮助将函数写入 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
属性 访问权限,那么您最终得到一个错误
我正在 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
属性 访问权限,那么您最终得到一个错误