【发布时间】:2020-06-13 01:53:48
【问题描述】:
我正在尝试在我的代码中使用normalize-url:
socialfields 是我使用for...of 循环转换为数组的对象。 socialfields 键的值是社交媒体的 URL
例如:
{
youtube: 'youtube.com/peoray',
facebook: 'facebook.com/peoray',
twitter: 'twitter.com/peoray',
}
所以我尝试在链接上使用normalize-url。但它不起作用。我得到的错误是TypeError: Cannot read property 'length' of undefined。
代码如下:
for (const [key, value] of Object.entries(socialfields)) {
if (value.length > 0)
socialfields[key] = normalize(value, {
forceHttps: true
});
}
【问题讨论】:
-
显然其中一个社交媒体网址是
null。这意味着value将是null而null.length是一个错误。 -
我不明白。你是什么意思它将为空。对不起我的菜鸟问题
-
你不应该做
if (value.length > 0)- 以下应该没问题:if (value)或者如果你真的想要if (value && value.length > 0)- 这是因为.length属性不存在一个空对象/变量。 -
在 for 循环之前打印
socialfields对象。我的猜测是你有这样的条目pinterest: null -
if (value)不够干净吗?这就是你所需要的......
标签: javascript arrays node.js object