簡體   English   中英

從javascript對象中刪除屬性的函數

[英]Function to delete a property from object in javascript

我想編寫一個函數,如果刪除了對象的屬性,它將返回true;對於其他對象,它應該返回false;該函數接受兩個參數,對象和屬性名稱。使用下面的代碼可以更清楚地看到它:

 var removeObjectProp = function(obj, propName) { if (obj.hasOwnProperty(propName)) { return delete obj.propName; } return false; } var emp = { name: 'jack', age: 12 }; console.log(removeObjectProp(emp, 'name')); console.log(emp) 

輸出:

    True
    {name: "jack", age: 12}
    age:12
    name:"jack"
    __proto__:
    Object
   }

所以我再次得到相同的對象。如果我修改功能:-

 var removeObjectProp = function(obj, propName){
         return delete obj.propName;
    } 

並致電

console.log(removeObjectProp (emp,'salary'));

總是返回真。 如何編寫函數以刪除作為參數傳遞的對象的屬性?

為了delete屬性,如果屬性名稱是變量中包含的字符串,則需要使用方括號符號來刪除屬性:

return delete obj[propName];

你會用

delete obj.propName;

僅當propName是屬性的文字名稱時,例如

{ name: 'jack', propName: 'foo' }

 var removeObjectProp = function(obj, propName) { if (obj.hasOwnProperty(propName)) { return delete obj[propName]; } return false; } var emp = { name: 'jack', age: 12 }; console.log(removeObjectProp(emp, 'name')); console.log(removeObjectProp(emp, 'propThatDoesNotExist')); console.log(emp) 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM