码迷,mamicode.com
首页 > 编程语言 > 详细

javascript中字符串和数组的相互转换

时间:2016-01-11 21:52:47      阅读:212      评论:0      收藏:0      [点我收藏+]

标签:

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);

 

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

 

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()函数可以参阅javascript的Array对象的push()方法一章节。
2.indexOf()函数可以参阅javascript的String对象的indexOf()方法一章节。 
3.substring()函数可以参阅javascript的String对象的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,返回转换后的字符串。

原文地址是:http://www.softwhy.com/forum.php?mod=viewthread&tid=9405

更多内容可以参阅:http://www.softwhy.com/javascript/

 

javascript中字符串和数组的相互转换

标签:

原文地址:http://www.cnblogs.com/zhadanren/p/5122514.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!