前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >js去掉数组中非数字内容

js去掉数组中非数字内容

原创
作者头像
肥晨
发布2025-03-07 17:53:10
发布2025-03-07 17:53:10
4300
代码可运行
举报
运行总次数:0
代码可运行

如何从 JavaScript 数组中过滤出数字元素

在 JavaScript 中,数组经常包含不同类型的数据,可能是数字、字符串或其他类型的元素。有时,我们需要从一个混合类型的数组中筛选出所有的数字元素。本文将通过一个实例,演示如何使用 JavaScript 的 Array.prototype.filter 方法和 isNaN 函数来实现这一目标。

在这里插入图片描述
在这里插入图片描述
目标

假设我们有一个包含不同数据类型的数组 checkedKeys,我们希望过滤掉所有非数字的元素,仅保留数字内容。下面是我们的数据示例:

代码语言:javascript
代码运行次数:0
复制
const checkedKeys = [
  'PROJECT', '1896801984109608961', '9876543210987654329', '9876543210987654331',
  '9876543210987654327', '9876543210987654330', '9876543210987654328', '9876543210987654326',
  'STATION', '9876543210987654335', '9876543210987654333', '9876543210987654336', 
  '9876543210987654334', '9876543210987654332', 'DEVICE_TYPE', '9876543210987654338', 
  '9876543210987654339', '9876543210987654340', '9876543210987654337', 'DEVICE', 
  '9876543210987654344', '9876543210987654342', '9876543210987654345', '9876543210987654343', 
  '9876543210987654341', 'FILE', '9876543210987654346', '9876543210987654347', 'REPORT', 
  'TICKET', '9876543210987654349', '9876543210987654350', '9876543210987654348'
];

该数组包含了几种类型的数据,包括数字字符串、普通字符串(如 'PROJECT', 'STATION' 等)以及其他标识符。我们希望提取出所有数字字符串,并将其存入新的数组中。

解决方案

我们可以通过 JavaScript 的 filter() 方法来过滤出数组中的数字。filter() 方法创建一个新数组,其中包含所有符合条件的元素。我们结合 isNaN() 函数来判断一个元素是否为数字,isNaN() 函数会返回 false 如果给定的值是数字,否则返回 true

步骤
  1. 使用 filter() 方法遍历数组undefinedfilter() 方法接受一个回调函数,对数组中的每个元素执行该回调。回调函数应返回一个布尔值,true 表示该元素应保留,false 表示该元素应被移除。
  2. 检查元素是否为数字undefined使用 isNaN() 函数检查元素是否为有效的数字。如果元素是数字,isNaN() 会返回 false,我们希望保留这些元素。
实现代码
代码语言:javascript
代码运行次数:0
复制
const checkedKeys = [
  'PROJECT', '1896801984109608961', '9876543210987654329', '9876543210987654331',
  '9876543210987654327', '9876543210987654330', '9876543210987654328', '9876543210987654326',
  'STATION', '9876543210987654335', '9876543210987654333', '9876543210987654336', 
  '9876543210987654334', '9876543210987654332', 'DEVICE_TYPE', '9876543210987654338', 
  '9876543210987654339', '9876543210987654340', '9876543210987654337', 'DEVICE', 
  '9876543210987654344', '9876543210987654342', '9876543210987654345', '9876543210987654343', 
  '9876543210987654341', 'FILE', '9876543210987654346', '9876543210987654347', 'REPORT', 
  'TICKET', '9876543210987654349', '9876543210987654350', '9876543210987654348'
];

// 过滤出仅包含数字的元素
const filteredCheckedKeys = checkedKeys.filter(key => !isNaN(key));

console.log(filteredCheckedKeys);
代码解释
  • checkedKeys.filter(key => !isNaN(key))undefined这行代码通过 filter() 方法过滤出所有数字。key => !isNaN(key) 是一个箭头函数,它对每个元素进行检查,判断该元素是否是一个有效的数字。如果 isNaN(key) 返回 false(表示该元素是数字),那么这个元素就会被保留在新数组中。
结果

执行上述代码后,filteredCheckedKeys 数组将只包含数字内容:

代码语言:javascript
代码运行次数:0
复制
[
  '1896801984109608961', '9876543210987654329', '9876543210987654331', '9876543210987654327',
  '9876543210987654330', '9876543210987654328', '9876543210987654326', '9876543210987654335',
  '9876543210987654333', '9876543210987654336', '9876543210987654334', '9876543210987654332',
  '9876543210987654338', '9876543210987654339', '9876543210987654340', '9876543210987654337',
  '9876543210987654344', '9876543210987654342', '9876543210987654345', '9876543210987654343',
  '9876543210987654341', '9876543210987654346', '9876543210987654347', '9876543210987654349',
  '9876543210987654350', '9876543210987654348'
]

通过使用 Array.prototype.filter() 方法和 isNaN() 函数,我们可以轻松地从一个包含多种类型元素的数组中筛选出数字元素。这种方法简单高效,适用于需要从复杂数据集中提取特定类型元素的场景。在实际开发中,这种技术可以广泛应用于数据处理、清洗和筛选操作。

您好,我是肥晨。

欢迎关注我获取前端学习资源,日常分享技术变革,生存法则;行业内幕,洞察先机。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 如何从 JavaScript 数组中过滤出数字元素
    • 目标
    • 解决方案
    • 步骤
    • 实现代码
    • 代码解释
    • 结果
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档