簡體   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