给定一个数组过滤掉数组中的非数字,并且从小到大排序

const array = ['7','1','4','a','5','x']

const array = ['7','1','4','a','5','x']
const filteredArray = () =>{
    const filterArr = array.filter(item => !isNaN(item))//isNaN()返回的是一个boolean值
    const sortArray = filterArr.sort((a,b) => Number(a) - Number(b))
    return sortArray
}

const result = filteredArray(array)
console.log(result)

 在上面的示例中,首先使用 filter 方法筛选出数组中的非数字元素。在 filter 方法的回调函数中,使用 isNaN 函数判断每个元素是否为数字,若不是数字则被过滤掉。然后,使用 sort 方法对过滤后的数组进行从小到大的排序。这里使用了一个比较函数 (a, b) => Number(a) - Number(b),它将元素转换为数字后进行比较。最后,通过 console.log 打印排序后的数组。

在示例中,原数组 [ '7' , '1' , '4' , 'a' , '5' , 'x' ]经过过滤和排序后,得到 ['1', '4', '5', '7']。请注意,过滤后的数组中的元素仍然是字符串类型,但它们可以按照数值进行排序。

如果你希望过滤后的数组中的元素是数字类型,可以在 filter 方法中使用 Number 函数将每个元素转换为数字,如下所示:

 

const array = ['7','1','4','a','5','x'];
const filteredArray = () =>{
    const filteredArr = array.filter(item => !isNaN(item)).map(Number);
    const sortedArray = filteredArr.sort((a, b) => a - b);
    return sortedArray
}

const result = filteredArray(array)
console.log(result);

在这个示例中,我们在 filter 方法后添加了 map(Number),将过滤后的数组中的每个元素转换为数字类型。这样,排序后的数组中的元素将是数字类型。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值