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