基于数组的常用方法总结
新建数组:
var arr=new Array();arr[0]=0;arr[1]=1;arr[2]=2;
或
var arr=[0,1,2];
arr.shift();删除该数组的第一项,并返回删除的值,如:
//console.log(arr.shift());是0,此时arr=[1,2]
arr.unshift(3,4);把括号里的参数加到该数组的头部,并返回该数组的长度,如:
//console.log(arr.unshift(3,4));是5,此时arr=[3,4,0,1,2]
arr.pop();删除该数组的最后一项,并返回删除的值,如:
//console.log(arr.pop());是2,此时arr=[0,1]
arr.push(4);将参数加到该数组的尾部,并返回该数组的长度,如:
//console.log(arr.push(4));是4,此时arr=[0,1,2,4]
arr1.concat(arr2);拼接数组,不改变原始数组,只是返回拼接后的结果,如:
//console.log(arr.concat([3,4]));是[0,1,2,3,4]
参数可以不是数组,如:
//console.log(arr.concat(3));是[0,1,2,3],console.log(arr.concat(3,5));是[0,1,2,3,5]
arr.splice(index,howmany,item1,...,itemX);从index处开始删除howmany个元素,并且从index处添加item1,...,itemX
该方法会改变原始数组



reverse:将数组反序,会改变原始数组,如:
//var a=[1,2,3],b=a.reverse();console.log(a,b);是[3,2,1],[3,2,1]
arr.slice(start,end);返回原数组从开始下标到结束下标之间的项组成的新数组
包含开始下标项,不包含结束下标项,如:
//var a=[1,2,3,4,5],b=a.slice(1,3);console.log(a,b);是[1,2,3,4,5],[2,3]
arr.join(separator);将数组的元素拼成字符串,以separator为分隔符,默认为逗号,如:
//console.log(arr.join());是"0,1,2",console.log(arr.join('|'));是"0|1|2"
相对的,字符串有spilt(separator,limit)方法,该方法不改变原始字符串,返回数组的元素中不包含separator,limit是返回数组的最大长度
jquery针对数组的方法:each()
语法:$("div").each(function(index,element){ }),其中element是DOM对象,也可以在function中使用$(this)
原生js针对数组的方法:forEach()
语法:arr.forEach(function(currentValue, index, arr){ }[,thisArg]),其中arr是当前元素所属的数组对象
thisArg是可选的,用于指定function函数中this指向的对象,省略则this指向Window对象
jquery还有$.each(object, function(key, value){ })方法,不只适用于数组,例:
$.each([4,3], function(index, value){console.log(index + ":" + value)}输出结果为 0: 4 1: 3
$.each({name: "Rick", age: 24}, function(key, value){console.log(key + ":" + value)}输出结果为 name: Rick age: 24

浙公网安备 33010602011771号