【发布时间】:2021-06-26 10:58:51
【问题描述】:
我有以下循环,我已经把它放在一起并且正在工作(在一定程度上):
for (var i = 0; i < dataIn.length; i++) {
if (dataIn.YourName = [] ) {
var modifiedName = dataIn[i].YourName.replace(/ \([\s\S]*?\)/g, '');
dataIn[i].YourName = modifiedName;
}
else {
console.log('Do Nothing');
}
}
但是,当 API 源中的内容为空 (null) 时,我遇到了错误。 控制台错误:无法读取 null 的“替换”属性
因此,我尝试将循环更新为仅在信息不为空或未定义(见下文)时运行,但它被忽略并仍在尝试运行。
for (var i = 0; i < dataIn.length; i++) {
if (dataIn.YourName !== null && dataIn.YourName !== '' ) {
var modifiedName = dataIn[i].YourName.replace(/ \([\s\S]*?\)/g, '');
dataIn[i].YourName = modifiedName;
}
else {
console.log('Do Nothing');
}
}
来自 API 的样本数据。
什么有效:
"YourName": "John Citizen",
什么会引发控制台错误:
"YourName": null,
【问题讨论】:
-
=是赋值运算符,你想要==或===。但是您的if条件仍然无法按预期工作,因为这不是您检查变量是否存储空数组的方式。 -
我们需要了解
dataIn的样子 -
“不为空或未定义” -
'' !== undefined
标签: javascript