【问题标题】:remove undefined value from object从对象中删除未定义的值
【发布时间】:2020-05-04 00:09:54
【问题描述】:

我在 javascript 中遇到问题,我想从对象中删除未定义的值

预期输出 没有undefined值的ni数组。

var result = [
  undefined,  
  undefined,
  {
    group: '1042000018356',
    email: 'xyz@desk.com'
  },
  {
    group: '1042000098595',
    email: 'abc@desk.com'
  }
]

// This my logic:


result = result.map(function(index){

  for (var key in array) { // Looping
    if( index == key ){
      var group = array[key];  // Group id
      var email = key;         // Email
      return {group , email};
    }
  }
  
});
console.log("result", result);

如何从对象中删除未定义的值

谁能帮帮我?

【问题讨论】:

  • result 是对象还是数组?

标签: javascript object undefined key-value


【解决方案1】:

您可以只做一个过滤器并传递一个布尔构造函数,这将确保您从结果数组中删除所有空值和未定义值

var result  = [
  undefined,  
  undefined,
  {
    group: '1042000018356',
    email: 'xyz@desk.com'
  },
  {
    group: '1042000098595',
    email: 'abc@desk.com'
  }
]

result = result.filter(Boolean);

console.log(result);

【讨论】:

    【解决方案2】:

    另一种方法是使用简单的filter() 来删除undefined,这里的过滤器 在内部将回调的返回值转换为Boolean,类似于Boolean 构造函数,即filter(Boolean)

    result = [
      undefined,  
      undefined,
      {
        group: '1042000018356',
        email: 'xyz@desk.com'
      },
      {
        group: '1042000098595',
        email: 'abc@desk.com'
      }
    ]
    
    result = result.filter(el=>el)
    console.log(result);

    【讨论】:

    • 兴趣。你对 (el=>el) 有什么小解释吗...非常清楚的方法。
    • @NikolaLukic 已编辑先生,我的回答有点解释:),谢谢你指出我。
    【解决方案3】:

    试试这个例子:

    var newarray = [
      undefined,  
      undefined,
      {
        group: '1042000018356',
        email: 'xyz@desk.com'
      },
      {
        group: '1042000098595',
        email: 'abc@desk.com'
      }
    ];
    
    var R = [];
    
    newarray.map(function(item, index , myarray){
    
       // console.log("item -> ", item);
       if( typeof item === 'undefined') {
         // console.log("undefined detected!");
       } else {
         R.push(item);
       } 
     
    });
    
    console.log("result -> ", R);
                  

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-24
      • 1970-01-01
      • 2014-10-14
      • 2015-04-20
      • 2019-10-09
      相关资源
      最近更新 更多