Javascript TypeError无法将未定义或null转换为对象
我正在尝试使用lodash函数过滤数据Javascript TypeError无法将未定义或null转换为对象,javascript,lodash,Javascript,Lodash,我正在尝试使用lodash函数过滤数据 if ( !_.isEqual(toJS(this.originalName), toJS(this.nameData)) && this.marks.subject.length ) { let NameKeys = _.filter(Object.keys(this.nameData), key => key.startsWith('Jo-')
if (
!_.isEqual(toJS(this.originalName), toJS(this.nameData)) &&
this.marks.subject.length
) {
let NameKeys = _.filter(Object.keys(this.nameData), key =>
key.startsWith('Jo-')
)
}
所以,这里我得到了这个例外。我这里的Object.keys()
设置为null
如何为此添加支票?或者修复此错误。首先,您可以检查它是否为实际对象
function isThisRealObject(x) {
return x && // not null, undefined, false, 0, or ''
typeof x !== 'number' &&
typeof x !== 'boolean' &&
typeof x !== 'string';
}
然后,您可以从需要检查的位置调用此函数
function findKeysFromObject(x) {
return isThisRealObject(x) && Object.keys(x).length > 0;
}
此.nameData
为null
或未定义
。你能在设置this.nameData
的地方包含代码吗?请检查更新的代码最简单的方法是用Object.keys(this.nameData)
替换Object.keys(this.nameData |{})
@SimonBrahan在这里undefined@ganeshk您的问题不在您当时提供的代码中;您需要检查填充此.nameData的代码。请检查更新的代码