[英]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.