JavaScript:检查数组元素是否为数字

时间:2018-10-28 21:18:29

标签: javascript arrays filter numbers

我有一个任意元素数组,只需要获取数字元素即可。 我尝试了arr.filter((c) => !isNaN(parseInt(arr[c])));,但是没有用。我仍然有一个完整的阵列。这里有什么问题,我还能做什么?

2 个答案:

答案 0 :(得分:1)

您正尝试使用数字访问索引,请更改为:

let newArray = arr.filter((c) => !isNaN(parseInt(c)));
                                                 ^

此外,您需要使用由函数filter返回的数组。

答案 1 :(得分:0)

.filter回调中的第一个参数是要迭代的数组项-如果c是数组项,则引用arr[c]通常不会没什么意义。尝试使用简单的typeof检查:

const arr = [3, 'foo', { bar: 'baz' }, false, 4, 5];
console.log(arr.filter(item => typeof item === 'number'));