代码之家  ›  专栏  ›  技术社区  ›  Caldera500

正在从JS对象中删除具有空值的对象属性[duplicate]

  •  0
  • Caldera500  · 技术社区  · 4 年前

    有没有一种方法可以在对象上循环并删除值与特定条件匹配的属性?

    以下是我所拥有的:

    var user = { first : 'John', last : 'Doe', city : 'Boston', state : 'MA', zip : '', birthdate : ''}
    
    for(const [key, value] of Object.entries(user)){
      if(!value){
        delete user.key;
       }
     });
    

    代码检测到一个空值,但是delete函数不工作;

    谢谢!

    2 回复  |  直到 4 年前
        1
  •  0
  •   caramba    4 年前

    你就快到了,试试看:

    var user = { first : 'John', last : 'Doe', city : 'Boston', state : 'MA', zip : '', birthdate : ''};
    
    for (let [key, value] of Object.entries(user)) {
      if(value.length <= 0) {
          delete user[key]
      }
    }
    console.log(user);
        2
  •  0
  •   Siva Kondapi Venkata    4 年前

    Reflect.deleteProperty(user, key);

    你可以用这样的东西