javascript - 我得到 [1,15],而不是 [1,0,15]。 JavaScript 过滤器

标签 javascript arrays filter integer

创建一个函数,它接受一个非负整数和字符串的列表,并返回一个过滤掉字符串的新列表。当我传递 [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/

相关文章:

java - servlet的filter.destroy()方法的api描述

javascript - 根据数字数量输入过滤 div

ElasticSearch 过滤数组中的标签

javascript - Highcharts 显示当图表放大时悬停在图表区域外的线上的点

javascript - jQuery 或 JavaScript : get MIME type of client file

java - 使用gson将json数组转换为android中的json对象?

C++ 成员私有(private)数组变量 - 编译时未定义

javascript - Typescript Resolve Observable 实体

javascript - React.Component 'this' 在 ComponentDidMount 中更改

c - 如何动态分配二维结构数组?