1. 程式人生 > >object.key與object[key]的差異

object.key與object[key]的差異

今天在做專案的時候用到了delete object.key 這個方法來刪除物件中的某一個鍵值對,然後通過Object.keys(object).length來列印物件鍵值對數時,發現結果跟我預想的不同,通過測試發現, delete object.key   和delete object[key]  這兩種方法刪除鍵值對的結果是不同的,不多說,直接上程式碼:
var deletekey;
var obj = { a: 111, b: {}, c: 444, d: { 1: 4 } };
for (var key in obj) {
    var v = obj[key];
    if (v === 111) {
        deletekey = key;
    }
}

delete obj.deletekey;
console.log(Object.keys(obj).length);
列印結果:4
如果把程式碼中的delete obj.deletekey用delete obj[deletekey]替換,列印結果就變成3,也就是我預想的結果