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

时间:2018-03-05 13:15:04

标签: javascript arrays

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




[{
    "id": "B001",
    "description": "T-Shirt",
    "price": 250
},
{
    "id": "B002",
    "description": "Shirt",
    "price": 220
},
{
    "id": "B003",
    "description": "Jeans",
    "price": 210
},
......]




3 个答案:

答案 0 :(得分: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()

答案 1 :(得分: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);

答案 2 :(得分:0)

这是一个较短的答案:

var result = t.map(i => parseInt(i)).filter(Boolean)