Javascript的String和数组
本章讨论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];
六、总结