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中遭遇级联表达式陷阱
Mar 08 Javascript
Extjs ajax同步请求时post方式参数发送方式
Aug 05 Javascript
鼠标滑上去后图片放大浮出效果的js代码
May 28 Javascript
Javascript中查找不以XX字符结尾的单词示例代码
Oct 15 Javascript
js截取中英文字符串、标点符号无乱码示例解读
Apr 17 Javascript
jQuery之动画效果大全
Nov 09 Javascript
AngularJS之自定义服务详解(factory、service、provider)
Apr 14 Javascript
angular.fromJson与toJson方法用法示例
May 17 Javascript
解决element UI 自定义传参的问题
Aug 22 Javascript
js常用方法、检查是否有特殊字符串、倒序截取字符串操作完整示例
Jan 26 Javascript
JavaScrip如果基于url实现图片下载
Jul 03 Javascript
js实现拖拽元素选择和删除
Aug 25 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 mcrypt可逆加密算法分析
2011/07/19 PHP
使用PHP实现密保卡功能实现代码&amp;lt;打包下载直接运行&amp;gt;
2011/10/09 PHP
PHP对象递归引用造成内存泄漏分析
2014/08/28 PHP
PHP模拟登陆163邮箱发邮件及获取通讯录列表的方法
2015/03/07 PHP
php根据一个给定范围和步进生成数组的方法
2015/06/19 PHP
jQuery关于导航条背景切换效果实现示例
2013/09/04 Javascript
javascript动态判断html元素并执行不同的操作
2014/06/16 Javascript
js完美解决IE6不支持position:fixed的bug
2015/04/24 Javascript
学习JavaScript设计模式之观察者模式
2020/04/22 Javascript
简单介绍jsonp 使用小结
2016/01/27 Javascript
jQuery+css实现的tab切换标签(兼容各浏览器)
2016/01/28 Javascript
Javascript的无new构建实例详解
2016/05/15 Javascript
Bootstrap组件系列之福利篇几款好用的组件(推荐)
2016/06/23 Javascript
微信小程序之网络请求简单封装实例详解
2017/06/28 Javascript
JavaScript中创建原子的方法总结
2018/08/26 Javascript
详解Angular模板引用变量及其作用域
2018/11/23 Javascript
少女风vue组件库的制作全过程
2019/05/15 Javascript
js实现视图和数据双向绑定的方法分析
2020/02/05 Javascript
[02:52]DOTA2新手基础教程 米波
2014/01/21 DOTA
[00:34]拔城逐梦,热血永恒!2020(秋)完美世界城市挑战赛报名开启
2020/10/09 DOTA
python中使用pyhook实现键盘监控的例子
2014/07/18 Python
Python 3.6 性能测试框架Locust安装及使用方法(详解)
2017/10/11 Python
tensorflow更改变量的值实例
2018/07/30 Python
Python3非对称加密算法RSA实例详解
2018/12/06 Python
python使用selenium实现批量文件下载
2019/03/11 Python
浅谈Pytorch中的torch.gather函数的含义
2019/08/18 Python
在Python中等距取出一个数组其中n个数的实现方式
2019/11/27 Python
对Matlab中共轭、转置和共轭装置的区别说明
2020/05/11 Python
Django中Q查询及Q()对象 F查询及F()对象用法
2020/07/09 Python
Python为何不支持switch语句原理详解
2020/10/21 Python
python 多进程和协程配合使用写入数据
2020/10/30 Python
selenium+headless chrome爬虫的实现示例
2021/01/08 Python
民主生活会剖析材料
2014/09/30 职场文书
胡雪岩故居导游词
2015/02/06 职场文书
2015年税务稽查工作总结
2015/05/26 职场文书
nginx rewrite功能使用场景分析
2022/05/30 Servers