一、数组 Array
1、创建数组
/* 构造函数 */
var arr1 = new Array(); //创建一个空数组
var arr1 = new Array(5); //创建指定长度数组(数组长度随时可以变,用处不大)
var arr1 = new Array(2, 'hello', new Date()); //创建数组,并带初始化数值
/* 字面量 */
var aar2 = [] //创建一个空数组(等同于调用无参构造函数)
var aar2 = [5,8] //创建一个带值的数组
2、元素的添加和删除
/* 直接使用索引添加(index没必要连续,但数组长度会有变化)*/
var a= [1,2,3];
a[3] = 5;
console.log(a); //1,2,3,5 /* unshift:将参数添加到原数组开头,并返回数组的长度 */
var a= [1,2,3];
var b = a.unshift(-2,-1); //a:[-2,-1,1,2,3] b:5 /* shift:删除原数组第一项,并返回删除元素的值;如果数组为空则返回undefined */
var a= [1,2,3];
var b = a.shift(); // a:[2,3] b:1 /* push:将参数添加到原数组末尾,并返回数组长度 */
var a= [1, 2, 3];
var b = a.push(4,5); //a:[1,2,3,4,5] b:5 /* pop:删除原数组最末项,并返回删除元素的值;如果数组为空则返回undefined */
var a= [1,2,3];
var b = a.shift(); // a:[1,2] b:3
3、数组连接
var a = [1,2,3];
var b = [4,5];
console.log(a.concat(b)); //1,2,3,4,5
console.log(a); //1,2,3
console.log(b); //3,4
4、splice(start,deleteCount,val1,val2,...):从start位置开始删除deleteCount项,并从该位置起插入val1,val2,...
/* splice 返回一个由删除元素组成的新数组,没有删除则返回空数组 */
var a = [1,2,3,4,5];
var b = a.splice(2,2,7,8,9); //a:[1,2,7,8,9,5] b:[3,4] var b = a.splice(0,0,-2,-1); //同unshift var b = a.splice(0,1); //同shift var b = a.splice(a.length,0,6,7); //同push var b = a.splice(a.length-1,1); //同pop
5、reverse:将数组反序
var a = [1,2,3,4,5];
var b = a.reverse(); //a:[5,4,3,2,1] b:[5,4,3,2,1]
6、sort(orderfunction):按指定的参数对数组进行排序,规则必须是函数;默认是按字符编码进行排序
var arr1 = ['jason', 'ada', 'nick', 'hi'];
console.log(arr1.sort()); //['jason', 'ada', 'nick', 'hi'] /* 将数组从小到大排序 */
var arr1 = [2,1,5,4,3];
var arr2 = arr1.sort(function(a,b){
return a-b; //返回b-a 则按从大到小排序
});
console.log(arr2); //1,2,3,4,5 /* 请根据每个元素的i属性,由小到大,排序如下数组 */
var arr1 = [{i:5,v:1},{i:2,v:4},{i:3,v:2},{i:1,v:5},{i:4,v:3}];
var aar2 = aar1.sort(function(a,b){
return a.i - b.i;
});
console.log(arr2);
7、slice(start,end):返回从原数组中指定开始下标到结束下标之间的项组成的新数组
var a = [1,2,3,4,5];
var b = a.slice(2,5); //a:[1,2,3,4,5] b:[3,4,5]
8、join(separator):将数组的元素组起一个字符串,以separator为分隔符,省略的话则用默认用逗号为分隔符
var a = [1,2,3,4,5];
var b = a.join('|'); //a:[1,2,3,4,5] b:'1|2|3|4|5'