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

 更新时间:2016年1月14日 10:01  点击:2293

本文实例介绍了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实现字符串和数组之间相互转换的详细代码,希望对大家的学习有所帮助。

[!--infotagslink--]

相关文章

  • JavaScript判断浏览器及其版本信息

    本篇文章主要分享了通过window.navigator来判断浏览器及其版本信息的实例代码。具有一定的参考价值,下面跟着小编一起来看下吧...2017-01-23
  • js实现浏览器打印功能的示例代码

    这篇文章主要介绍了js如何实现浏览器打印功能,文中示例代码非常详细,帮助大家更好的理解和学习,感兴趣的朋友可以了解下...2020-07-15
  • Nest.js参数校验和自定义返回数据格式详解

    这篇文章主要给大家介绍了关于Nest.js参数校验和自定义返回数据格式的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-03-28
  • 利用JS实现点击按钮后图片自动切换的简单方法

    下面小编就为大家带来一篇利用JS实现点击按钮后图片自动切换的简单方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧...2016-10-25
  • 详解前端安全之JavaScript防http劫持与XSS

    作为前端,一直以来都知道HTTP劫持与XSS跨站脚本、CSRF跨站请求伪造。防御这些劫持最好的方法是从后端入手,前端能做的太少。而且由于源码的暴露,攻击者很容易绕过防御手段。但这不代表我们去了解这块的相关知识是没意义的,本文的许多方法,用在其他方面也是大有作用。...2021-05-24
  • js+css实现回到顶部按钮(back to top)

    这篇文章主要为大家详细介绍了js+css实现回到顶部按钮back to top回到顶部按钮,感兴趣的小伙伴们可以参考一下...2016-03-03
  • JavaScript仿支付宝密码输入框

    那么今天我就用JavaScript代码来实现这个效果吧,那么首先介绍一下整个的思路,首先我们先将确定输入密码的位数,我的需求是5位,那么就用一个div标签包住5个input标签...2016-01-02
  • js实现上传图片及时预览

    这篇文章主要为大家详细介绍了js实现上传图片及时预览的相关资料,具有一定的参考价值,感兴趣的朋友可以参考一下...2016-05-09
  • js实现调用网络摄像头及常见错误处理

    这篇文章主要介绍了js实现调用网络摄像头及常见错误处理,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-03-07
  • JS实现随机生成验证码

    这篇文章主要为大家详细介绍了JS实现随机生成验证码,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2021-09-06
  • js组件SlotMachine实现图片切换效果制作抽奖系统

    这篇文章主要介绍了js组件SlotMachine实现图片切换效果制作抽奖系统的相关资料,需要的朋友可以参考下...2016-04-19
  • vue.js 表格分页ajax 异步加载数据

    Vue.js通过简洁的API提供高效的数据绑定和灵活的组件系统.这篇文章主要介绍了vue.js 表格分页ajax 异步加载数据的相关资料,需要的朋友可以参考下...2016-10-20
  • 基于JavaScript实现表单密码的隐藏和显示出来

    为了网站的安全性,很多朋友都把密码设的比较复杂,但是如何密码不能明显示,不知道输的是对是错,为了安全起见可以把密码显示的,那么基于js代码如何实现的呢?下面通过本文给大家介绍JavaScript实现表单密码的隐藏和显示,需要的朋友参考下...2016-03-03
  • js实现列表按字母排序

    这篇文章主要为大家详细介绍了js实现列表按字母排序,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2020-08-11
  • 如何使用JavaScript实现无缝滚动自动播放轮播图效果

    这篇文章主要介绍了如何使用JavaScript实现“无缝滚动 自动播放”轮播图效果,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2020-08-20
  • 基于JavaScript实现文字超出部分隐藏

    这篇文章主要介绍了基于JavaScript实现文字超出部分隐藏 的相关资料,需要的朋友可以参考下...2016-03-01
  • JS实现响应鼠标点击动画渐变弹出层效果代码

    这篇文章主要介绍了JS实现响应鼠标点击动画渐变弹出层效果代码,具有非常自然流畅的动画过度效果,涉及JavaScript针对鼠标事件的响应及页面元素样式的动态操作相关技巧,需要的朋友可以参考下...2016-03-28
  • 一个关于JS正则匹配的踩坑记录

    这篇文章主要给大家介绍了一个关于JS正则匹配的踩坑记录,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-04-13
  • node.JS md5加密中文与php结果不一致怎么办

    这次文章要给大家介绍的是node.JS md5加密中文与php结果不一致怎么办,不知道具体解决办法的下面跟小编一起来看看。 因项目需要,需要Node.js与PHP做接口调用,发现nod...2017-07-06
  • 浅析AngularJS Filter用法

    系统的学习了一下angularjs,发现angularjs的有些思想根php的模块smarty很像,例如数据绑定,filter。如果对smarty比较熟悉的话,学习angularjs会比较容易一点,这篇文章给大家介绍angularjs filter用法详解,感兴趣的朋友一起学习吧...2015-12-29