1.join()和split()
将数组的元素转化成字符串并连接在一起,默认使用逗号作为连接符,也可自定义
如下例。split() 是join()的逆过程。都不会修改原值。
例:
var a = [1,2,3];
a.join(); //"1,2,3"
a.join(" "); //"1 2 3"
a.join(""); //"123"
var b = new Array(10); //长度为10的空数组
b.join('='); // "=========="
var s = "z,h,r,m,g,h,g";
s.split(); //["z,h,r,m,g,h,g"]
s.split(","); //["z", "h", "r", "m", "g", "h", "g"] ___
2.reverse()
将数组顺序翻转,会修改数组本身,而不是返回新的数组。
例:
var a = [1,2,3];
a.reverse().join(); //"3,2,1"
a的值是[3,2,1] ___
3.sort()
对数组进行排序,会修改数组本身。默认将数组元素转换为字符串,然后按字符顺序
从小到大排序。也可传入一个匿名函数作为参数。
例:
var a = [33,4,1111,222];
a.sort(); //[1111, 222, 33, 4] 按字母表顺序
a.sort(function(a,b){return a-b }); //[4, 33, 222, 1111] 按数值顺序从小到大
a.sort(function(a,b){return b-a }); //[1111, 222, 33, 4] 按数值顺序从大到小
var b = ['ant','Bug','cat','Dog'];
b.sort(); //["Bug", "Dog", "ant", "cat"] //按照ASCII顺序 排序
b.sort(function(s,t){ //不区分大小写 按字母顺序排序
var a = s.toLowerCase();
var b = t.toLowerCase();
if( a < b ) return -1;
if( a > b ) return 1;
return 0;
});
结果:["ant", "Bug", "cat", "Dog"] ___
4.concat()
数组合并,将已知数组与其他数组合并,执行结果会返回一个新数组,不修改原来
调用concat()的数组。
例:
var a = [1,2,3];
a.concat(4,5); // [1,2,3,4,5]
a.concat([4,5]); // [1,2,3,4,5]
a.concat([4,5],[6,7]); // [1,2,3,4,5,6,7]
a.concat(4,[5,[6,7]]); // [1,2,3,4,5,[6,7]]
a依旧是 [1,2,3] ,没有被修改。 ___
5.slice()
返回一个数组片段或子数组。不会修改调用数组。 包含两个参数:第一个是起始
位置,第二个是终止位置。返回结果不包含终止位置的元素。
例:
var a = [1,2,3,4,5];
a.slice(0,3); //[1,2,3]
a.slice(3); //[4,5] 只传一个参数表示从参数指定的位置开始直到数组结尾
a.slice(1,-1); //[2,3,4] 位置-1表示的是元素5 因为位置0表示的是元素1。
a.slice(-3,-2); //[3] ___
6.splice()
从数组中删除元素,插入元素到数组中。或者同时完成以上两种操作。会对原数组
做出修改。第一个参数指定了插入或删除元素的起始位置,第二个参数指定的是从
数组中删除元素的个数。如果省去第二个参数表示删除从指定的起始位置开始到数
组结尾的全部元素。splice()返回值是由被删除元素组成的数组。
例:
var a = [1,2,3,4,5,6,7,8]
//删除位置4也就是元素5(包括5)之后的所有元素
a.splice(4) //返回值 [5,6,7,8] a的值[1,2,3,4]
a.splice(1,2) //返回值 [2,3] a的值[1,4]
a.splice(1,1) //返回值 [4] a的值[1]
splice() 前两个参数指定了需要删除的数组元素,紧随其后的任意个数参数指定了
需要插入到数组中的元素。插入的位置是第一个参数指定的。
例:
var b = ["m","l","x","b","r","j"]
//在位置3处不删除任何元素,插入5,2,1三个元素
b.splice(3,0,5,2,1) //返回值 []
b的值["m", "l", "x", 5, 2, 1, "b", "r", "j"]
var c = ["m","l","x","AI","b","r","j"]
//删除从位置3开始的一个元素即 "AI" 插入5,2,1三个元素
c.splice(3,1,5,2,1) //返回值 ["AI"]
b的值["m", "l", "x", 5, 2, 1, "b", "r", "j"] ___
7.push()和pop()
从数组末尾存入(push())或弹出(pop())元素,push()返回新数组的长度,pop()返回
弹出的元素并从数组中删除该元素。
例:
var stack = []; //stack: []
stack.push(1,2); //stack: [1,2] 返回 2
stack.pop(); //stack: [1] 返回 2
stack.push(3); //stack: [1,3] 返回 2
stack.pop(); //stack: [1] 返回 3
stack.push([4,5]); //stack: [1,[4,5]] 返回 2
stack.pop(); //stack: [1] 返回 [4,5]
stack.pop(); //stack: [] 返回 1 ___
8.unshift()和shift()
从数组开始位置存入(unshift())或弹出(shift())元素,unshift()返回新数组的长度
,shift()删除数组的第一个元素并将其返回。
例:
var a = []; //a: []
a.unshift(1); //a: [1] 返回 1
a.unshift("a"); //a: ["a",1] 返回 2
a.shift();//a: [1] 返回 "a"
a.unshift(7,[4,5]); //a: [7,[4,5],1] 返回 3 注意:此处是参数作为整体存入的
a.shift();//a: [[4,5],1] 返回 7
a.shift();//a: [1] 返回 [4,5]
a.shift();//a: [] 返回 1