繁体   English   中英

从javascript对象中删除属性的函数

[英]Function to delete a property from object in javascript

我想编写一个函数,如果删除了对象的属性,它将返回true;对于其他对象,它应该返回false;该函数接受两个参数,对象和属性名称。使用下面的代码可以更清楚地看到它:

 var removeObjectProp = function(obj, propName) { if (obj.hasOwnProperty(propName)) { return delete obj.propName; } return false; } var emp = { name: 'jack', age: 12 }; console.log(removeObjectProp(emp, 'name')); console.log(emp) 

输出:

    True
    {name: "jack", age: 12}
    age:12
    name:"jack"
    __proto__:
    Object
   }

所以我再次得到相同的对象。如果我修改功能:-

 var removeObjectProp = function(obj, propName){
         return delete obj.propName;
    } 

并致电

console.log(removeObjectProp (emp,'salary'));

总是返回真。 如何编写函数以删除作为参数传递的对象的属性?

为了delete属性,如果属性名称是变量中包含的字符串,则需要使用方括号符号来删除属性:

return delete obj[propName];

你会用

delete obj.propName;

仅当propName是属性的文字名称时,例如

{ name: 'jack', propName: 'foo' }

 var removeObjectProp = function(obj, propName) { if (obj.hasOwnProperty(propName)) { return delete obj[propName]; } return false; } var emp = { name: 'jack', age: 12 }; console.log(removeObjectProp(emp, 'name')); console.log(removeObjectProp(emp, 'propThatDoesNotExist')); console.log(emp) 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM