一、 删除、添加数组元素的一些方法,改变数组,并返回值
1、 push()和pop():push()在数组尾部添加一个或多个元素,返回数组长度。
pop()删除数组最后一个元素,返回删除的值
var 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
2、unshift和shift():unshift()是在数组头部添加一个或多个元素,并将已存在元素移动到更高索引的位置,返回数组新的长度。
shift()删除数组第一个元素并将其返回,然后把所有随后的元素下移一个位置来填补数组头部的空缺。
var a = [];
a.unshift(1); /a:[1] <span style="font-family: Arial, Helvetica, sans-serif;">返回1</span>
a.unshift(22); //a:[22,1] <span style="font-family: Arial, Helvetica, sans-serif;">返回2</span><span style="font-family: Arial, Helvetica, sans-serif;"> </span>
a.shift() //a:[1] <span style="font-family: Arial, Helvetica, sans-serif;">返回22</span>
a.unshift([4,5]) //a:[[4,5],1] 返回2
3、splice():删除元素、插入元素到数组中或者同时完成两种操作
它的第一个参数指定了插和删除的起始位置。第二个参数指定了应该从数组中删除元素的个数。如果省略第二个参数,从起始点开始到数组的结尾所有元素都被 删除。
splice()返回一个又删除元素组成的数组,如果没有删除元素就返回空数组。
var a = [1,2,3,4,5,6,7,8];
a.splice(4) //a:[1,2,3,4] 返回[5,6,7,8]
a.splice(1,2); //a:[1,4] 返回[2,3]
下面是添加元素的代码:
var a = [1,2,3,4,5];
a.splice(2,0,'a','b'); //a:[1,2,'a','b',3,4,5] 返回[]
a.splice(2,2,[1,2],3) //a:[1,2,[1,2],3,3,4,5] 返回['a','b']
4、delete : delete运算符来删除对象属性,删除数组元素:
<span style="font-family: Arial, Helvetica, sans-serif;">delete a[1];</span>
二、创建并返回一个新数组的方法
1、 concat():调用原始数组的元素和concat()的每个参数。
如果这些参数中任何一个自身是数组,则连接的是数组的元素,而非数组本身。
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]]
2、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]
a.slice(-3,-2) //返回[3]
三、改变数组顺序的方法,不改变数组元素个数和值,不返回新数组
1、 join():将数组中所有元素都转化为字符串并连接在一起,返回最后生成的字符串。
var a = [1,2,3]
a.join(); //a:"1,2,3"
2、reverse():将数组中的元素颠倒顺序,返回逆序的数组。
3、sort():将数组中的元素排序并返回排序后的数组。
var a = new Array("banana","cherry","apple");
a.sort(); //a:["apple","banana","cherry"];
按照其他方式而非字母表顺序进行数组排序,给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 根据顺序返回负数、0、正数
a.sort(function(a,b){return b-a})
按照字母表不区分大小写排序:
a = ['ant','Bug','cat','Dog']
a.sort(); //区分大小写的排序:['Bug','Dog','ant','cat']
a.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、toString():将每个元素转化为字符串,并且输出用逗号分隔的字符串列表。