js id字符串转数组

news/2024/11/12 19:50:17 标签: javascript, 前端, 开发语言

将一个逗号分隔的字符串(例如 "12,123,213,")转换为一个 JavaScript 数组,并去除多余的逗号,可以使用以下几种方法。这里我将展示几种常见的方式:

方法 1: 使用 splitfilter

你可以使用 split 方法将字符串分割成数组,然后使用 filter 方法去除空字符串。

javascript">const str = "12,123,213,";
const ids = str.split(',').filter(id => id !== '');

console.log(ids); // 输出: ["12", "123", "213"]
注意,有些场景下需要id类型一致

如果你希望将 facilitatorId 字符串分割后转换为数字 ID,可以使用 map 函数将每个字符串 ID 转换为数字。以下是调整后的代码:

javascript">const ids = facilitatorId.split(',')
                          .filter(id => id.trim() !== '')  // 去除空字符串
                          .map(id => parseInt(id, 10));     // 转换为整数

这样,ids 数组就包含了一组数字 ID,而不是字符串。如果你需要确保所有 ID 都是有效的整数,可以在 map 函数中添加额外的验证逻辑,例如:

javascript">const ids = facilitatorId.split(',')
                          .filter(id => id.trim() !== '')
                          .map(id => {
                            const numId = parseInt(id, 10);
                            return isNaN(numId) ? null : numId;  // 或者抛出错误
                          })
                          .filter(id => id !== null);  // 过滤掉无效的 ID

方法 2: 使用正则表达式

你可以使用正则表达式来匹配所有的数字,并将它们放入数组中。

javascript">const str = "12,123,213,";
const ids = str.match(/\d+/g) || [];

console.log(ids); // 输出: ["12", "123", "213"]

方法 3: 使用 trimsplit

你可以先去掉字符串末尾的逗号,然后再使用 split 方法。

javascript">const str = "12,123,213,";
const trimmedStr = str.replace(/,$/, ''); // 去掉末尾的逗号
const ids = trimmedStr.split(',');

console.log(ids); // 输出: ["12", "123", "213"]

方法 4: 使用 mapparseInt

如果你想将数组中的字符串转换为数字,可以使用 map 方法结合 parseInt

javascript">const str = "12,123,213,";
const ids = str.split(',').filter(id => id !== '').map(Number);

console.log(ids); // 输出: [12, 123, 213]

完整示例

下面是一个完整的示例,展示了如何将字符串转换为数组,并将数组中的字符串转换为数字。

javascript">const str = "12,123,213,";

// 方法 1: 使用 split 和 filter
const ids1 = str.split(',').filter(id => id !== '');
console.log("方法 1:", ids1); // 输出: ["12", "123", "213"]

// 方法 2: 使用正则表达式
const ids2 = str.match(/\d+/g) || [];
console.log("方法 2:", ids2); // 输出: ["12", "123", "213"]

// 方法 3: 使用 trim 和 split
const trimmedStr = str.replace(/,$/, '');
const ids3 = trimmedStr.split(',');
console.log("方法 3:", ids3); // 输出: ["12", "123", "213"]

// 方法 4: 使用 map 和 parseInt
const ids4 = str.split(',').filter(id => id !== '').map(Number);
console.log("方法 4:", ids4); // 输出: [12, 123, 213]

选择合适的方法

  • 方法 1:简单直观,适用于大多数情况。
  • 方法 2:使用正则表达式,简洁但可能稍微难懂一些。
  • 方法 3:去除末尾逗号后再分割,适用于末尾有逗号的情况。
  • 方法 4:转换为数字,适用于需要数字数组的情况。

http://www.niftyadmin.cn/n/5747153.html

相关文章

【软件工程】ATAM架构权衡评估方法

ATAM架构权衡评估方法 概述质量属性有哪些?质量属性的效用树怎么构建?如何确定质量属性的优先级? 概述 ATAM(Architecture Tradeoff Analysis Method)是一种系统架构评估方法,由卡梅隆大学软件工程协会提出…

停车场微信小程序的设计与实现(lw+演示+源码+运行)

摘要 随着信息技术在管理上越来越深入而广泛的应用,管理信息系统的实施在技术上已逐步成熟。本文介绍了停车场微信小程序的开发全过程。通过分析停车场微信小程序管理的不足,创建了一个计算机管理停车场微信小程序的方案。文章介绍了停车场微信小程序的…

Python | Leetcode Python题解之第552题学生出勤记录II

题目: 题解: class Solution:def checkRecord(self, n: int) -> int:MOD 10**9 7mat [[1, 1, 0, 1, 0, 0],[1, 0, 1, 1, 0, 0],[1, 0, 0, 1, 0, 0],[0, 0, 0, 1, 1, 0],[0, 0, 0, 1, 0, 1],[0, 0, 0, 1, 0, 0],]def multiply(a: List[List[int]],…

Spring Boot 的生命周期

Spring Boot的生命周期非常丰富,包含了从初始化到运行再到关闭的各个阶段。每个阶段都有其特定的任务和事件,开发者可以利用这些生命周期的特性来更好地控制应用的行为。 初始化阶段 (Initialization Phase) 1. 构造 SpringApplication 对象 当调用 Spr…

【浙江大学大模型系列】启真医疗大模型(国内大模型)

启真大模型是一款专注于医疗领域的AI大模型,它坚持“数据知识双轮驱动”的技术路线,通过大模型技术和医学知识库的紧密结合,致力于推动大模型技术在医疗行业的落地和应用实践。 启真大模型的特点在于其强大的数据整合能力和医学知识库的支持。…

mapreduce 将数据清洗后保存到 hbase

mapreduce 将数据清洗后保存到 hbase 数据格式 {"年份":"1990","国家补贴(亿元)":"5.4","地方补贴(亿元)":"3.2","企业补贴(亿元)&qu…

[ Linux 命令基础 6 ] Linux 命令详解-权限和用户管理命令

🍬 博主介绍 👨‍🎓 博主介绍:大家好,我是 _PowerShell ,很高兴认识大家~ ✨主攻领域:【渗透领域】【数据通信】 【通讯安全】 【web安全】【面试分析】 🎉点赞➕评论➕收藏 养成习…

医保专线配置与外网并存

最近公司需要加一根医保专线,翻阅资料研究许久,服务器既能通外网又能通医保,整合出一套教程 希望对你有帮助 ღ( ・ᴗ・ )比心。 设备:核心交换机 、Akuai路由器、深信服vpn 我的是Akuai路由器,…