在 JavaScript 中将数组过滤为仅数字

在 JavaScript 中将数组过滤为仅数字

Filter an Array to only Numbers in JavaScript

使用该filter()方法将数组过滤为仅数字,例如
arr.filter(value => typeof value === 'number'). filter方法返回一个数组,其中包含满足条件的所有元素。在我们的例子中,所有类型为number.

索引.js
const arr = [1, 'test', 3, null]; const onlyNumbers = arr.filter( element => typeof element === 'number' ); console.log(onlyNumbers); // 👉️ [1, 3]

我们传递给
Array.filter
方法的函数会针对数组中的每个元素进行调用。

如果该函数返回一个真值,该元素将被添加到该filter()方法返回的新数组中。

number在每次迭代中,我们使用
typeof运算符检查元素是否具有类型

typeof运算符返回一个指示值类型的字符串。

所有满足条件(具有数字类型)的元素都将添加到新数组中。

如果您有一个可能是有效数字的字符串数组,则可以将该
Number对象传递给该filter方法。

索引.js
const arr = ['1', 'test', '3', 5]; const validNumbers = arr.filter(Number); // 👇️ ['1', '3', 5] console.log(validNumbers); const toNumbers = validNumbers.map(Number); console.log(toNumbers); // 👉️ [1, 3, 5]

我们使用该filter方法遍历数组。在每次迭代中,我们将元素转换为数字并返回结果。

Number对象获取当前元素,将其转换为数字并返回结果。

请注意,如果将 的值0传递给数字对象,则它不会包含在新数组中,因为0它是一个虚假值。

JavaScript 中的假值是:null, undefined, false, 0, ""
(空字符串),
NaN(不是数字)。

filter方法不会将数组中的字符串转换为数字,它只是返回满足条件的元素。

您可以在过滤后的数组上调用该map()方法来获取数字数组。

进一步阅读

发表评论