从JavaScript中的对象删除属性 [英] Deleting property from object in javascript

查看:59
本文介绍了从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
}

推荐答案

这意味着objundefined,因此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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆