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


Posted in Javascript onJanuary 12, 2016

本文实例介绍了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(i<k){},一个while循环语句,执行的条件是i的值小于k也就是小于字符串中字符的个数。
6.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;i<arr.length;i++) {},遍历数组中的每一个元素。
4.f(arr!=""){}如果数组元素不为空。
5.if(strTmp=="") {strTmp=arr;},如果字符串中也为空,那么就将数组中的此元素赋值给字符串strTmp。
6.else{strTmp=strTmp+str+arr},否则进行字符串连接。
7.return strTmp,返回转换后的字符串。

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

Javascript 相关文章推荐
JavaScript 判断指定字符串是否为有效数字
May 11 Javascript
js/jQuery对象互转(快速操作dom元素)
Feb 04 Javascript
解决Jquery向页面append新元素之后事件的绑定问题
Mar 16 Javascript
javascript相关事件的几个概念
May 21 Javascript
jquery.map()方法的使用详解
Jul 09 Javascript
jQuery实现Select下拉列表进行状态选择功能
Mar 30 jQuery
为JQuery EasyUI 表单组件增加焦点切换功能的方法
Apr 13 jQuery
浅谈React中的元素、组件、实例和节点
Feb 27 Javascript
浅析vue-router jquery和params传参(接收参数)$router $route的区别
Aug 03 jQuery
vue自定义全局共用函数详解
Sep 18 Javascript
vue 兄弟组件的信息传递的方法实例详解
Aug 30 Javascript
element-ui中el-upload多文件一次性上传的实现
Dec 02 Javascript
js右下角弹出提示框示例代码
Jan 12 #Javascript
jquery插件EasyUI中form表单提交实例分享
Jan 11 #Javascript
详解WordPress开发中get_current_screen()函数的使用
Jan 11 #Javascript
提升jQuery的性能需要做好七件事
Jan 11 #Javascript
jQuery 移动端artEditor富文本编辑器
Jan 11 #Javascript
AngularJs动态加载模块和依赖注入详解
Jan 11 #Javascript
jquery在ie7下选择器的问题导致append失效的解决方法
Jan 10 #Javascript
You might like
php 常用算法和时间复杂度
2013/07/01 PHP
php 批量替换程序的具体实现代码
2013/10/04 PHP
php对数组内元素进行随机调换的方法
2015/05/12 PHP
WordPress中自定义后台管理界面配色方案的小技巧
2015/12/29 PHP
解读PHP的Yii框架中请求与响应的处理流程
2016/03/17 PHP
thinkPHP实现多字段模糊匹配查询的方法
2016/12/01 PHP
PHP的简单跳转提示的实现详解
2019/03/14 PHP
让你的博客飘雪花超出屏幕依然看得见
2013/01/04 Javascript
点击标签切换和自动切换DIV选项卡
2014/08/10 Javascript
深入理解javascript作用域和闭包
2014/09/23 Javascript
Jquery 实现图片轮换
2015/01/28 Javascript
详解AngularJS中自定义过滤器
2015/12/28 Javascript
使用jQuery Mobile框架开发移动端Web App的入门教程
2016/05/17 Javascript
自制简易打赏功能的实例
2017/09/02 Javascript
微信小程序-可移动菜单的实现过程详解
2019/06/24 Javascript
vue循环数组改变点击文字的颜色
2019/10/14 Javascript
node.js中Buffer缓冲器的原理与使用方法分析
2019/11/23 Javascript
[50:17]Newbee vs Serenity 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/18 DOTA
Python返回真假值(True or False)小技巧
2015/04/10 Python
实践Python的爬虫框架Scrapy来抓取豆瓣电影TOP250
2016/01/20 Python
python数据类型_元组、字典常用操作方法(介绍)
2017/05/30 Python
python logging日志模块的详解
2017/10/29 Python
Anaconda2下实现Python2.7和Python3.5的共存方法
2018/06/11 Python
python实现人工智能Ai抠图功能
2019/09/05 Python
Python字典dict常用方法函数实例
2020/11/09 Python
python 实现波浪滤镜特效
2020/12/02 Python
PyCharm 解决找不到新打开项目的窗口问题
2021/01/15 Python
CPB肌肤之钥美国官网:Clé de Peau Beauté
2017/09/05 全球购物
Gap英国官网:Gap UK
2018/07/18 全球购物
德国、奥地利和瑞士最大的旅行和度假门户网站:HolidayCheck
2019/11/14 全球购物
广播体操口号
2014/06/18 职场文书
副乡长群众路线教育实践活动个人对照检查材料
2014/09/19 职场文书
县政府办公室领导班子对照检查材料思想汇报
2014/09/28 职场文书
学生上课说话检讨书
2014/10/25 职场文书
Python使用openpyxl批量处理数据
2021/06/23 Python
总结一下关于在Java8中使用stream流踩过的一些坑
2021/06/24 Java/Android