我得到了这样的数组:
let arr = ['1','2','0','3','0',undefined,'0',undefined,'3','',''];
为了过滤此数组的'undefined'和''元素并将其转换为数字,我这样做:
arr = arr.filter(function(e){
if(e){
return parseInt(e);
}
});
我有:
[1,2,3,3]
0也被过滤掉了,因为'return 0'意味着'return false'。
我想知道您通常如何处理此类问题?
更新:
我看到以下答案提出了许多有用的方法。
我从中学到了很多。
并且如果数组中的元素需要是数字而不是字符串,我是否应该再次遍历数组?还是有另一种单步方法?
最佳答案
您可以链接所需条件。
let array = ['1', '2', '0', '3', '0', undefined, '0', undefined, '3', '', ''];
array = array
.filter(Boolean) // get only truthy values
.map(Number); // convert all values to number
console.log(array);