创建一个函数,它接受一个非负整数和字符串的列表,并返回一个过滤掉字符串的新列表。当我传递 [1,'a','b',0,15]
时,它返回 [1,15]
而不是 [1,0, 15]
。请提出任何更正建议。
function filter_list(l) {
// Return a new array with the strings filtered out
var filt = l.filter(function(x) {
if (typeof(x) === 'number')
return x;
});
return filt;
}
最佳答案
0 是假的,如果 filter
回调返回的值是假的,被迭代的项目将不会包含在最终数组中。只需返回 typeof x === 'number'
即可:
function filter_list(l) {
return l.filter(x => typeof x === 'number');
}
console.log(filter_list([1, 'a', 'b', 0, 15]));
关于javascript - 我得到 [1,15],而不是 [1,0,15]。 JavaScript 过滤器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51238600/