请我有一个数组[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'))
你可以使用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()
您可以按照以下步骤操作:
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);
这是一个较短的答案:
var result = t.map(i => parseInt(i)).filter(Boolean)