繁体   English   中英

从 object 中删除属性

[英]Remove property from object

如果 object obj具有属性prop ,则 function 会从 object 中删除该属性并返回 true,在所有其他情况下返回 false。

现在,它返回了正确的值,但是显示该属性是否被删除的测试失败了。

会不会是因为我试图从 object 中delete新创建的数组,而不是原来的 object 本身?

function removeProperty(obj, prop) {

  let newObj = Object.keys(obj);

  if(newObj.includes(prop)){

     delete newObj.prop

     return true

    }


  return false

}

看起来愿望是改变obj 在这种情况下,您将创建一个新的 object 完全调用者无权访问。 您应该更改代码以从obj中删除

if (obj.hasOwnProperty(prop)) {
  delete obj[prop];
  return true;
}
return false;

这是hasOwnProperty文档的文档

目前,您正在尝试从您的键数组中删除,而不是您的 object,因此您通过 object 不会改变。 相反,您需要从obj中删除。 此外,由于prop是动态的,因此您需要在删除时使用括号表示法 最后,要检查prop是否是obj中的属性,您可以使用in关键字,如下所示:

 function removeProperty(obj, prop) { if (prop in obj) { delete obj[prop]; return true; } return false; } const obj = { prop: "name", age: 20 } const res = removeProperty(obj, "prop"); console.log(obj); console.log(res);

暂无
暂无

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

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