删除未定义的值

问题描述 投票:0回答:1

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

预期产出 没有 undefined 值尼数组。

var result = [
  undefined,  
  undefined,
  {
    group: '1042000018356',
    email: '[email protected]'
  },
  {
    group: '1042000098595',
    email: '[email protected]'
  }
]

// 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);

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

谁能帮帮我?

javascript object undefined key-value
1个回答
3
投票

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

var result  = [
  undefined,  
  undefined,
  {
    group: '1042000018356',
    email: '[email protected]'
  },
  {
    group: '1042000098595',
    email: '[email protected]'
  }
]

result = result.filter(Boolean);

console.log(result);

2
投票

另一种方法是用简单的 filter() 去掉 undefined,在此 过滤 在内部将回调的返回值转为 Boolean 恰似 Boolean 构造函数,即 filter(Boolean)

result = [
  undefined,  
  undefined,
  {
    group: '1042000018356',
    email: '[email protected]'
  },
  {
    group: '1042000098595',
    email: '[email protected]'
  }
]

result = result.filter(el=>el)
console.log(result);

0
投票

试试这个例子。

var newarray = [
  undefined,  
  undefined,
  {
    group: '1042000018356',
    email: '[email protected]'
  },
  {
    group: '1042000098595',
    email: '[email protected]'
  }
];

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);
              
© www.soinside.com 2019 - 2024. All rights reserved.