代码之家  ›  专栏  ›  技术社区  ›  Martin Ongtangco

如何从JavaScript对象中删除键[[副本]

  •  1037
  • Martin Ongtangco  · 技术社区  · 14 年前

    假设我们有一个这样格式的对象:

    var thisIsObject= {
       'Cow' : 'Moo',
       'Cat' : 'Meow',
       'Dog' : 'Bark'
    };
    

    我想做一个按键删除的函数:

    removeFromObjectByKey('Cow');
    
    3 回复  |  直到 7 年前
        1
  •  2502
  •   jessegavin    10 年前

    这个 delete

    下面的例子都做同样的事情。

    // Example 1
    var key = "Cow";
    delete thisIsObject[key]; 
    
    // Example 2
    delete thisIsObject["Cow"];
    
    // Example 3
    delete thisIsObject.Cow;
    

    如果你感兴趣,读一读 Understanding Delete 进行深入的解释。

        2
  •  212
  •   trinalbadger587    3 年前

    如果您使用的是underline.js或Lodash,则有一个函数“omit”可以完成此操作。
    http://underscorejs.org/#omit

    var thisIsObject= {
        'Cow' : 'Moo',
        'Cat' : 'Meow',
        'Dog' : 'Bark'
    };
    _.omit(thisIsObject,'Cow'); //It will return a new object
    
    => {'Cat' : 'Meow', 'Dog' : 'Bark'}  //result
    

    如果要修改当前对象,请将返回的对象指定给当前对象。

    thisIsObject = _.omit(thisIsObject,'Cow');
    

    delete thisIsObject['Cow'];
    

    另一种选择 使用纯JavaScript。

    thisIsObject = Object.keys(thisIsObject).filter(key =>
        key !== 'cow').reduce((obj, key) =>
        {
            obj[key] = thisIsObject[key];
            return obj;
        }, {}
    );
    
        3
  •  127
  •   kalehmann ASKN    5 年前

    简单到:

    delete object.keyname;
    

    delete object["keyname"];