0

0

js实现字符串和数组之间相互转换操作

高洛峰

高洛峰

发布时间:2017-02-06 09:48:42

|

1507人浏览过

|

来源于php中文网

原创

星绘
星绘

豆包旗下 AI 写真、P 图、换装和视频生成

下载

本文实例介绍了javascript中字符串和数组的相互转换方法,分享给大家供大家参考,具体内容如下
字符串和数组的相互转换操作是非常的重要的,因为在实际编码过程中会经常用到,所以这是必须要掌握的知识点,当然这个知识点并不难,知道了就永远知道了,并不是那种需要充分实践才能够掌握的东西,下面就做一下简单的介绍。
一.字符串转换为数组
此操作会用到split()函数,它能够以指定的字符作为分隔符,将字符串转换成一个数组,实例代码如下:

var Str="abc-mng-zhang-mayi";
var newArray=Str.split("-");
console.log(newArray);

由输出的结果可以看出,split()函数已经将字符串转换成一个数组。
二.将数组转换为字符串
此操作可以使用Array对象的join()函数来实现,此函数可以将数组中的元素以指定的字符连接起来,然后返回产生的字符串。
代码如下: 

var newArray=["abc","mng","zhang","mayi"];
var Str=newArray.join("-");
console.log(Str);

以上代码实现了我们的要求,使用"-"将数组元素连接了起来,并生成了一个字符串。
上面的两个例子都是使用的自带的函数,当然我们也可以自己写,这样灵活性更大,并且知根知底。
三.自定义字符串转换为数组

function StringToArray(str,substr)
{
 var arrTmp=new Array();
 if(substr=="")
 {
 arrTmp.push(str);
 return arrTmp;
 }
 var i=0,j=0,k=str.length;
 while(i<k)
 {
 j=str.indexOf(substr,i);
 if(j!=-1)
 {
  if(str.substring(i,j)!="")
  {
  arrTmp.push(str.substring(i,j));
  }
  i = j+1;
 }
 else
 {
  if(str.substring(i,k)!="")
  {
  arrTmp.push(str.substring(i,k));
  }
  i=k;
 }
 }
 return arrTmp;
}
var Str="abc-mng-zhang-mayi";
console.log(StringToArray(Str,"-"));
console.log(StringToArray(Str,"-").length);

以上代码同样实现了将字符串转换为数组的功能,下面对代码进行一下注释:
代码注释:
1.function StringToArray(str,substr){},此函数用来进行转化,str是要被转换的字符串,substr是分隔符。
2. var arrTmp=new Array(),声明一个数组,用来存放分割的字符串片段。
3.if(substr=="") {arrTmp.push(str);return arrTmp;},如果字符串分隔符为空,那么就将整个字符串放入数组。
4. var i=0,j=0,k=str.length;声明三个变量,并赋初值,k的值是字符串中字符的个数。
5.while(i6.j=str.indexOf(substr,i),用来检测分隔符在字符串出现的位置,如果indexOf()函数带有两个参数的,第二个参数是查找指定字符开始的位置,这段代码要结合下面的代码理解。
7.if(j!=-1),如果查找的分隔符存在。
8.if(str.substring(i,j)!=""){},截取从开始查找位置到查找到第一个分隔符之间的字符串。
9.arrTmp.push(str.substring(i,j));,将截取的字符串放入数组。
10.i=j+1;将开始查找的位置设置为分隔符的下一个字符。
11.else{},如果没有查找。
12.if(str.substring(i,k)!=""){arrTmp.push(str.substring(i,k));},如果最后一个分隔符之后的字符不为空,那么就添加到数组。
13.i=k,将i设置为k,这样循环就停止了。
14.return arrTmp; 返回数组。
相关知识:
1.push()方法的定义和用法:
此方法可以给指定的数组末尾追加一个或者多个新的元素,并返回数组的长度。
注:新元素是直接追加到原有的数组,而不是创建新的数组。
点击可参阅数组更多属性和方法。
语法结构:
arrayObject.push(元素一,元素二,....,元素N)

参数列表:
参数 描述
参数(一...N) 必需。要被追加的新元素。

实例代码:

var a = [1,2,3];
console.log(a.push("zhang","dao"));

2.indexOf()方法的定义和用法:
此方法返回指定的字符串在字符串中首次出现的位置。
如果没有检索到相应的字符串,返回值是-1。
注:此方法对大小写敏感。
语法结构:
stringObject.indexOf(substring,startindex)

实例代码:

var a=new String("abcdefg")
console.log(a.indexOf("b"));

b在字符串abcdefg中第二个出现。输出结果:1。

var a=new String("abcdefg")
console.log(a.indexOf("b"));

此方法对大小写敏感的,所以字符串abcdefg中并没有大写的B出现。输出结果:-1。

var a=new String("abcdefg")
console.log(a.indexOf("e",4));

检索开始的位置是4,字符串首次出现的位置还是从字符串的起始开始计算的。输出结果:4。

 3.substring()函数。

四.自定义数组转换为字符串

function ArrayToString(arr,str)
{
 var strTmp="";
 for(var i=0;i<arr.length;i++)
 {
 if(arr[i]!="")
 {
  if(strTmp=="")
  {
  strTmp = arr[i];
  }
  else
  {
  strTmp=strTmp+str+arr[i];
  }
 }
 }
 return strTmp;
}
var newArray=["abc","mng","zhang","mayi"];
console.log(ArrayToString(newArray,"-"));

   

以上代码实现了我们的要求,可以将数组转换为字符串,下面对代码进行一下注释:
代码注释:
1.function ArrayToString(arr,str){},第一个参数是数组,第二个参数是连接字符串。
2.var strTmp="",声明一个空字符串。
3.for(var i=0;i4.f(arr!=""){}如果数组元素不为空。
5.if(strTmp=="") {strTmp=arr;},如果字符串中也为空,那么就将数组中的此元素赋值给字符串strTmp。
6.else{strTmp=strTmp+str+arr},否则进行字符串连接。
7.return strTmp,返回转换后的字符串。

以上就是js实现字符串和数组之间相互转换的详细代码,希望对大家的学习有所帮助。

更多js实现字符串和数组之间相互转换操作相关文章请关注PHP中文网!

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
pixiv网页版官网登录与阅读指南_pixiv官网直达入口与在线访问方法
pixiv网页版官网登录与阅读指南_pixiv官网直达入口与在线访问方法

本专题系统整理pixiv网页版官网入口及登录访问方式,涵盖官网登录页面直达路径、在线阅读入口及快速进入方法说明,帮助用户高效找到pixiv官方网站,实现便捷、安全的网页端浏览与账号登录体验。

1044

2026.02.13

微博网页版主页入口与登录指南_官方网页端快速访问方法
微博网页版主页入口与登录指南_官方网页端快速访问方法

本专题系统整理微博网页版官方入口及网页端登录方式,涵盖首页直达地址、账号登录流程与常见访问问题说明,帮助用户快速找到微博官网主页,实现便捷、安全的网页端登录与内容浏览体验。

334

2026.02.13

Flutter跨平台开发与状态管理实战
Flutter跨平台开发与状态管理实战

本专题围绕Flutter框架展开,系统讲解跨平台UI构建原理与状态管理方案。内容涵盖Widget生命周期、路由管理、Provider与Bloc状态管理模式、网络请求封装及性能优化技巧。通过实战项目演示,帮助开发者构建流畅、可维护的跨平台移动应用。

213

2026.02.13

TypeScript工程化开发与Vite构建优化实践
TypeScript工程化开发与Vite构建优化实践

本专题面向前端开发者,深入讲解 TypeScript 类型系统与大型项目结构设计方法,并结合 Vite 构建工具优化前端工程化流程。内容包括模块化设计、类型声明管理、代码分割、热更新原理以及构建性能调优。通过完整项目示例,帮助开发者提升代码可维护性与开发效率。

35

2026.02.13

Redis高可用架构与分布式缓存实战
Redis高可用架构与分布式缓存实战

本专题围绕 Redis 在高并发系统中的应用展开,系统讲解主从复制、哨兵机制、Cluster 集群模式及数据分片原理。内容涵盖缓存穿透与雪崩解决方案、分布式锁实现、热点数据优化及持久化策略。通过真实业务场景演示,帮助开发者构建高可用、可扩展的分布式缓存系统。

111

2026.02.13

c语言 数据类型
c语言 数据类型

本专题整合了c语言数据类型相关内容,阅读专题下面的文章了解更多详细内容。

77

2026.02.12

雨课堂网页版登录入口与使用指南_官方在线教学平台访问方法
雨课堂网页版登录入口与使用指南_官方在线教学平台访问方法

本专题系统整理雨课堂网页版官方入口及在线登录方式,涵盖账号登录流程、官方直连入口及平台访问方法说明,帮助师生用户快速进入雨课堂在线教学平台,实现便捷、高效的课程学习与教学管理体验。

17

2026.02.12

豆包AI网页版入口与智能创作指南_官方在线写作与图片生成使用方法
豆包AI网页版入口与智能创作指南_官方在线写作与图片生成使用方法

本专题汇总豆包AI官方网页版入口及在线使用方式,涵盖智能写作工具、图片生成体验入口和官网登录方法,帮助用户快速直达豆包AI平台,高效完成文本创作与AI生图任务,实现便捷智能创作体验。

813

2026.02.12

PostgreSQL性能优化与索引调优实战
PostgreSQL性能优化与索引调优实战

本专题面向后端开发与数据库工程师,深入讲解 PostgreSQL 查询优化原理与索引机制。内容包括执行计划分析、常见索引类型对比、慢查询优化策略、事务隔离级别以及高并发场景下的性能调优技巧。通过实战案例解析,帮助开发者提升数据库响应速度与系统稳定性。

97

2026.02.12

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PHP基础入门课程
PHP基础入门课程

共33课时 | 2.2万人学习

WEB前端教程【HTML5+CSS3+JS】
WEB前端教程【HTML5+CSS3+JS】

共101课时 | 9.6万人学习

Go语言教程-全程干货无废话
Go语言教程-全程干货无废话

共100课时 | 10.8万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号