从JavaScript中的对象删除属性 [英] Deleting property from object in javascript
本文介绍了从JavaScript中的对象删除属性的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在遍历javascript中的一个对象,并使用以下命令删除了一个未定义的项目:
I'm looping through an object in javascript and deleting an item that is undefined, using:
for (var key in result) {
if (result.hasOwnProperty(key)) {
var obj = result[key];
if (typeof obj.name === 'undefined') {
delete result[key];
}
}
}
如果我不使用delete
,则可以很好地进行迭代.但是,当我使用delete时,我得到了错误'TypeError: Cannot read property 'name' of undefined'
If I don't use the delete
, this iterates just fine. However, when I use delete, I then get the error, 'TypeError: Cannot read property 'name' of undefined'
你知道我在做什么错吗?
Any idea what I'm doing wrong here?
谢谢
正在迭代的对象:
{
date: Mon, 02 Apr 2012 17: 48: 17 GMT,
t_date: Mon, 02 Apr 2012 17: 48: 17 GMT,
start: 0,
_id: 4f79e661d7cb8ccc1f000005
} {
date: Mon,n02 Apr 2012 17: 48: 26 GMT,
t_date: Mon, 02 Apr 2012 17: 48: 26 GMT,
start: 0,
_id: 4f79e66ad7cb8ccc1f000006
} {
name: 'testname',
date: Mon, 02 Apr 2012 17: 48: 29 GMT,
t_date: Mon, 02 Apr 2012 17: 48: 29 GMT,
start: 0,
_id: 4f79e66dd7cb8ccc1f000007
}
推荐答案
这意味着obj
是undefined
,因此obj.name会导致此错误.
It means that obj
is undefined
and therefore obj.name causes this error.
应该是:
var obj = result[key];
if (obj && typeof obj.name === 'undefined') {
delete result[key];
}
这篇关于从JavaScript中的对象删除属性的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文