实现带有对象和属性名称的 removeProperty 函数

新手上路,请多包涵

实现 removeProperty 函数,它接受一个对象和一个属性名称并执行以下操作:

如果对象 obj 具有属性 prop,它会从对象中删除该属性。如果该属性已被删除,则返回 true;否则返回 false。

这段代码有什么问题?

 function removeProperty(obj,prop) {
if(obj.hasOwnProperty('prop'))
  {
    console.log(obj);
    delete obj.prop;
    return true;
  }
  else
    {
      return false;
    }
}

var obj= {
  name:"John"
};

removeProperty({obj,'name'});

原文由 mukesh dommati 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 433
1 个回答

预期的代码是:

 function removeProperty(obj, prop) {
if(prop in obj){
  delete obj[prop];
  return true;
}else{
  return false;
 }
}

解释:

hasOwnProperty() 方法返回一个布尔值,指示对象是否具有指定的属性作为自己的(非继承的)属性。因此要验证自己的和继承的属性以及 .

括号表示法将是比 obj.prop 更好的选择。由于方括号表示法允许使用不能与点表示法一起使用的字符(如数字),并且它还允许使用变量选择属性。在当前情况下,应使用括号表示法。

原文由 luckof44 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题