javascript忽略数组中的字符串和小数点数

问题描述 投票:0回答:3

请我有一个数组[45,66,90,'再见',100.5]我想编写一个javascript函数来忽略'bye'和“.5”并得到一个返回数组[45,66, 90,100]作为我的输出,但我不知道如何去做它我是javascript的新手。这就是我的尝试

var filterFloat = function(value) {
  if (/^(\-|\+)?([0-9]+(\.[0-9]+)?|Infinity)$/.test(value))
    return Number(value);
  return NaN;
}

console.log(filterFloat('100.5'))
javascript arrays
3个回答
1
投票

你可以使用reduce。您可以使用Math.floor来舍入数字。

var arr = [ 45, 66, 90, 'bye', 100.5 ];
	
var result = arr.reduce((c,v)=>{
    if ( !isNaN( v ) ) c.push( Math.floor( v ) );
    return c;
},[]);
	
console.log( result );

Doc:.reduce()


0
投票

您可以按照以下步骤操作:

  • 解析数组中的值以将其转换为integer。这会将值转换为integer
  • 然后你可以使用isNaN方法检查解析的值是否实际上是一个数字。这将帮助您检测数组中的string值,您可以在结果集中省略它们。

 var arr = [ 45, 66, 90, 'bye', 100.5 ];
 var result = [];
 arr.map((item) => {
   if(!isNaN(parseInt(item))){
     result.push(parseInt(item));
   }
 });
 console.log(result);

0
投票

这是一个较短的答案:

var result = t.map(i => parseInt(i)).filter(Boolean)
© www.soinside.com 2019 - 2024. All rights reserved.