Javascript筛选器未返回预期的int值

Javascript筛选器未返回预期的int值,javascript,arrays,Javascript,Arrays,JavaScript筛选器函数不使用parseInt将项转换为整数。因为在reduce函数中使用过滤数组时,字符串连接正在进行,而不是添加值 var numbers = ['1', 2, 3, 4,'hello']; var intArray=numbers.filter(num => **parseInt(num)**); var sum=intArray.reduce((tot, b) => tot+b,0); 您的筛选器正在筛选出无法强制为数字的项

JavaScript筛选器函数不使用parseInt将项转换为整数。因为在reduce函数中使用过滤数组时,字符串连接正在进行,而不是添加值

    var numbers = ['1', 2, 3, 4,'hello'];

    var intArray=numbers.filter(num => **parseInt(num)**);

    var sum=intArray.reduce((tot, b) => tot+b,0);
您的筛选器正在筛选出无法强制为数字的项目,但这些项目仍然不一定是数字-将它们转换为数字,然后再将+与它们一起使用,可能与一起使用。map:

变量数=['1',2,3,4',你好]; var intArray=数字 .filternum=>parseIntnum .地图编号; var总和=intArray.reducetot,b=>tot+b,0;
console.logsum 诀窍是首先过滤掉非int值,然后将它们全部转换为int 带isNaN的过滤器将消除hello,带parseInt的map将把字符串o number转换为int

var numbers = ['1', 2, 3, 4, 'hello'];
var intArray = numbers
  .filter(num => !isNaN(num)).map(x => parseInt(x))

您还可以在一个reduce中对它们求和,并跳过筛选阶段,其中1作为有效值传递,正如已经指出的那样,这是问题所在,等等

变量数=['1',2,3,4,'hello']; const result=numbers.reducer,c=>+r | | 0++c | | 0
console.LogResultar是否尝试提取int值?筛选器将允许“1”进入intArray。。。你仍然需要把它变成一个数字,但是。。。tot++B过滤器不会修改任何值,您正在查找地图吗?如果没有它,“hello”将变成NaN