我在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);
如何从对象中删除未定义的值
谁能帮帮我?
你可以做一个过滤器,并传递一个布尔构造函数,这将确保你从结果数组中删除所有的空值和未定义的值。
var result = [
undefined,
undefined,
{
group: '1042000018356',
email: '[email protected]'
},
{
group: '1042000098595',
email: '[email protected]'
}
]
result = result.filter(Boolean);
console.log(result);
另一种方法是用简单的 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);
试试这个例子。
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);