Javascript 需要帮助编写一个函数,以便在键不存在时返回空数组';t作为数组中的对象存在
我正在盖茨比/React中开发一款无头Shopify应用程序。我需要一些帮助来处理我从Shopify得到的数据 以下是数据的示例:Javascript 需要帮助编写一个函数,以便在键不存在时返回空数组';t作为数组中的对象存在,javascript,arrays,reactjs,shopify,gatsby,Javascript,Arrays,Reactjs,Shopify,Gatsby,我正在盖茨比/React中开发一款无头Shopify应用程序。我需要一些帮助来处理我从Shopify得到的数据 以下是数据的示例: product.options = [ { name: 'Size', values: ['S', 'M', 'L', 'XL', 'XXL'], }, { name: 'Colour', values: ['Terrazzo Berry'], }, ]; 我想为颜色创建一个可变值键 const colours =
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 || [];
唯一的问题是,如果名为“颜色”的对象中没有键,我会得到以下错误:
TypeError: undefined is not an object (evaluating 'product.options.find(function (option) {
return option.name.toLowerCase() === 'colour';
}).values')
如果我正在搜索的键不存在,有人能帮我写一些返回空对象的代码吗在访问
.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
我的代码有什么问题?
如果在代码中找不到键,则函数返回
未定义
,并且您具有值
属性访问权限,因此您会出现错误在访问值
键之前,您需要设置默认值
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
函数将返回undefined
,并且您具有.values
属性访问权限,因此您会出现一个错误只是一个注释,如果成功,您的代码不会创建新数组,而是使用sameI,最后使用新的可选链接方法进行轻微更改const colors=product.options.find((option)=>option.name.toLowerCase()==='color')?。值| |[]代码>它永远不能用这种方式工作,,“array find”返回数组元素上的指针,而不是副本,只是一个注释,如果成功,代码不会创建新数组,而是使用sameI,最后使用新的可选链接方法进行了轻微更改const colors=product.options.find((option)=>option.name.toLowerCase()==='color')?。值| |[]代码>它永远不能用这种方式工作,、array find返回数组元素上的指针,而不是副本