首页 > 技术文章 > Javascript的String和数组

xiaobook 2015-05-26 15:42 原文

本章讨论Javascript的String和数组。

所有语言中对String和数组的操作是很普遍的,掌握好它们的操作,会让我们在lu代码的时候事半功倍。

一、String

 String顾名思义,就是字符串的意思

var  string="Iamhandsome";

就创建了一个名为string的字符串,它的值为Iamhandsome。

String是Javascript基本数据类型之一。String也可以看作是Javascript的一个对象。对象有很多方法的

下面来看看它的方法,由于方法众多,我们就拿几个典型的看看。

1、charAt()

charAt() 方法可返回指定位置的字符。字符串中第一个字符的下标是 0。如果参数 index 不在 0 与 string.length 之间,该方法将返回一个空字符串。

var str="Hello world!"
document.write(str.charAt(1)) // 结果:  e

2、indexOf()

indexOf() 方法可返回某个指定的字符串值在字符串中首次出现的位置。

 

var str="Hello world!"
alert(str.indexOf("Hello"))      //0
alert(str.indexOf("World"))    //-1   区分大小写,没有找到返回-1
alert(str.indexOf("world"))    //6

alert(str.indexOf("world",7))    //  -1  从第7个位置开始找

 

3、lastIndexOf() 

lastIndexOf() 方法可返回一个指定的字符串值最后出现的位置。如果有指定位置就从指定位置从后向前搜索,如果没有指定位置还是从前往后搜索。

var str="Hello worlddd!"
alert(str.lastIndexOf("o",10))   //7
alert(str.lastIndexOf("o",5))    //4
alert(str.lastIndexOf("o"))       //7
alert(str.lastIndexOf("World"))  //-1
alert(str.lastIndexOf("world"))  //6

 

4、slice()

slice() 方法可提取字符串的某个部分,并以新的字符串返回被提取的部分。

var str="Hello worlddd!"
alert(str.slice(6))               //worlddd!
alert(str.slice(6,11))          //world

 

5、split() 

split() 方法用于把一个字符串分割成字符串数组。

var str="Hello worlddd!"
alert(str.split("w"))            //Hello,orlddd!
alert(str.split(" "))             //Hello,worlddd!
alert(str.split(""))             //H,e,l,l,o,,w,o,r,l,d,d,d,!

 

 


 

二、数组

 1、concat()

方法用于连接两个或多个数组

 

var arr = new Array(3)
arr[0] = "George"
arr[1] = "John"
arr[2] = "Thomas"

 

var arr2 = new Array(3)
arr2[0] = "James"
arr2[1] = "Adrew"
arr2[2] = "Martin"

 

alert(arr.concat(arr2)); 

 

2、join()

方法用于把数组中的所有元素放入一个字符串。元素是通过指定的分隔符进行分隔的。

 

var arr = new Array(3)
arr[0] = "George";
arr[1] = "John";
arr[2] = "Thomas";
alert(arr.join("."));  //George.John.Thomas

 

3、reverse()

方法用于颠倒数组中元素的顺序。

var arr = new Array(3)
arr[0] = "George";
arr[1] = "John";
arr[2] = "Thomas";
alert(arr.reverse());  //Thomas,John,George

 

4、sort()

方法用于对数组的元素进行排序。参数可以规定排序顺序,但必须是函数。

var arr = new Array(3)
arr[0] = "George";
arr[1] = "Aohn";
arr[2] = "Tas";
alert(arr.sort());  // Aohn,George,Tas

alert(arr.sort(function (a,b){
  return a.length -b.length;
}
));  //  按照字符串长度从小到大排序。Tas,Aohn,George

alert(arr.sort(
function (a,b){
return a.charCodeAt(1)>b.charCodeAt(1);
}
)); // 按照数组中元素第二个字母从a到z进行排列,区分大小写。  Tas,George,Aohn

 

5、splice()

   方法   向/从数组中添加/删除项目,然后返回被删除的项目。

splice(index,howmany,item1,.....,itemX)
index 必需。整数,规定添加/删除项目的位置,使用负数可从数组结尾处规定位置。
howmany 必需。要删除的项目数量。如果设置为 0,则不会删除项目。
item1, ..., itemX 可选。向数组添加的新项目。从howmany处添加。

var arr = new Array(3)
arr[0] = "GEorge";
arr[1] = "AAhn";
arr[2] = "Tas";
alert(arr);
alert(arr.splice(0,0,"good"));   //返回空
alert(arr);     // good,GEorge,AAhn,Tas

 

 

var arr = new Array(3)
arr[0] = "GEorge";
arr[1] = "AAhn";
arr[2] = "Tas";
/*
alert(arr.sort(
function (a,b){
alert(b.charCodeAt(1));
return a.charCodeAt(1)>b.charCodeAt(1);
}
));
*/
alert(arr);
alert(arr.splice(0,2,"good"));  //删除了GEorge,AAhn
alert(arr);                             //good,Tas

三、String转换成数组

 1、split

 

var ss="wo shi da hui lang";
alert(typeof ss);                        //string
var aa=ss.split(" ");
alert(aa instanceof String);     //false
alert(aa instanceof Array);   //true

 

四、数组转换成String

 1、join

 

var ss="wo shi da hui lang";
alert(typeof ss);
var aa=ss.split(" ");
alert(aa instanceof String);
alert(aa instanceof Array);
alert(aa);                                 //wo,shi,da,hui,lang
alert(aa.join(""));                    //woshidahuilang

 

2、

五、一些面试题

1、valueOf()和toString()的区别?

2、实现反转String的方法

3、实现数组去除重复元素。比如var arr=[1,2,3,6,7,8,7,6];

六、总结

推荐阅读