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,也就是我预想的结果

猜你喜欢

转载自blog.csdn.net/lh_guojw/article/details/77130748