Array:数组是一个特殊的对象
四个维度学习数组的方法
1.方法的作用
2.方法的参数
3.返回值
4.原有数组是否改变
var ary=[1,2,3,4];
console.log(ary);//[1,2,3,4]
- 1)push( items )
- ① 向数组的末尾添加项
- ② 要增加的数组项(a,b)如果是多项用逗号隔开
- ③ 返回数组的新长度
- ④ 原有数组改变
var result = ary.push(5,6);
console.log(result);//6
console.log(ary);//[1,2,3,4,5,6]
- 2)unshift( items )
- ① 向数组的开头添加项
- ② 要增加的数组项(a,b)如果是多项用逗号隔开
- ③ 返回数组的新长度
- ④ 原有数组改变
var result = ary.unshift(5,6);
console.log(result);//6
console.log(ary);//[5, 6, 1, 2, 3, 4]
- 3)shift()
- ① 删除数组的第一项
- ② null
- ③ 返回删除的数组项
- ④ 原有数组改变
var result = ary.shift();
console.log(result);//1
console.log(ary);//[2,3,4]
- 4)pop()
- ① 删除数组的最后一项
- ② null
- ③ 返回删除的数组项
- ④ 原有数组改变
var result = ary.pop();
console.log(result);//4
console.log(ary);//[1,2,3]
- 5)splice( start , deletecount , item)
- ① 删除数组项
- ②
- 1) splice(n) 从索引n开始删除到末尾
- 2) splice(n,m) 从索引n开始删除m个
- 3) splice(n,m,x) 从索引n开始删除m个,并且用x去到删除项的位置
- 4) splice(n,m,x,y) 从索引n开始删除m个,从参数m后面的所有参数都是用来替换到删除项目的位置
- 5) shift ⇒ splice(0,1)
- 6) pop ⇒ splice(length-1,1)
- 7) push ⇒ splice(length,0,’item’)
- 8) unshift ⇒ splice(0,0,x)
- 9) splice(0)⇒ 利用它的返回值可以实现克隆数组的目的
- ③ 返回删除的数组项组成的新数组
- ④ 原有数组改变
var result = ary.splice(1);
console.log(result);//[2, 3, 4]
console.log(ary);//[1]
var result = ary.splice(1,2);
console.log(result);//[2, 3]
console.log(ary);//[1, 4]
var result = ary.splice(1,2,5);
console.log(result);//[2,3]
console.log(ary);//[1,5,4]
var result = ary.splice(1,2,5,6);
console.log(result);//[2,3]
console.log(ary);//[1,5,6,4]
var result = ary.splice(0,1);
console.log(result);//[1]
console.log(ary);//[2,3,4]
var result = ary.splice(ary.length-1,1);
console.log(result);//[4]
console.log(ary);//[1,2,3]
var result = ary.splice(ary.length,0,5);
console.log(result);//[]
console.log(ary);//[1,2,3,4,5]
var result = ary.splice(0,0,5);
console.log(result);//[]
console.log(ary);//[5,1,2,3,4]
var result = ary.splice(0);
console.log(result);//[1,2,3,4]
console.log(ary);//[1,2,3,4]
- 6)slice()
- ① 从元素组中,复制截取数组
- ②
- 1) slice(0) 克隆数组(从头复制到尾)
- 2) slice(n) 从索引n开始复制到末尾
- 3) slice(n,m) 从索引n开始复制到索引m(不包含m)
- 4) slice(-n) slice支持负数 ⇒ slice(-n+ary.length)
- ③ 返回复制截取的新数组
- ④ 原有数组不变
var result = ary.slice(0);
console.log(result);//[1,2,3,4]
console.log(ary);//[1,2,3,4]
var result = ary.slice(1);
console.log(result);//[2,3,4]
console.log(ary);//[1,2,3,4]
var result = ary.slice(1,2);
console.log(result);//[2]
console.log(ary);//[1,2,3,4]
var result = ary.slice(-1);
console.log(result);//[4]
console.log(ary);//[1,2,3,4]
- 7)concat(arry,arry)
- ① 删除数组的最后一项
- ② 要拼接的数组或者数组项,如果是多个用‘,’隔开
- ③ 返回拼接好的新数组
- ④ 原有数组不变
var result = ary.concat([5],[6]);
console.log(result);//[1,2,3,4,5,6]
console.log(ary);//[1,2,3,4]
- 8)join()
- ① 把数组中的每一项按照指定的分隔符拼接成字符串
- ② 参数:分割符,如果不写默认是‘,’
- ③ 返回拼接好的字符串
- ④ 原有数组不变
var result = ary.join("+");
console.log(result);//'1+2+3+4'
console.log(ary);//[1,2,3,4]
- 9)reverse()
- ① 倒序数组
- ② null
- ③ 倒序过来后的原有数组
- ④ 原有数组改变
var result = ary.reverse();
console.log(result);//[4, 3, 2, 1]
console.log(ary);//[4, 3, 2, 1]
10)sort( )
- ① 按照指定的规则排序
②
- 1)升序
function(a,b) {return a-b};
- 2)降序
function(a,b) {return b-a};
- ③ 返回排好序的数组
- ④ 原有数组改变
var result = ary.sort(function(a,b){return b-a});
console.log(result);//[4, 3, 2, 1]
console.log(ary);//[4, 3, 2, 1]
以下方法在ie6-8下兼容性不好
- 11)indexOf()
- ① 查看数组项在数组中第一次出现的索引位置
- ② 要查看的数组项
- ③ 如果出现就返回对应的索引位置。否则返回-1
- ④ 原有数组不变
var result = ary.indexOf(2);
console.log(result);//1
console.log(ary);//[1, 2, 3, 4]
- 12)lastIndexOf()
- ① 查看数组项在数组中最后一次出现的索引位置
- ② 要查看的数组项
- ③ 如果出现就返回对应的索引位置。否则返回-1
- ④ 原有数组不变
var ary=[2,1,2,2,1];
var result = ary.lastindexOf(2);
console.log(result);//3
console.log(ary);//[2,1,2,2,1]
- 13)forEach()
- ① 循环遍历数组的每一项
- ② 参数是一个函数:function(item,index,originArray){}
- ③ 返回值是一个undefined
- ④ 原有数组不变
var result = ary.forEach(function(item,index,originArray){});
console.log(result);//undefined
console.log(ary);//[1,2,3,4]
- 14)map()
- ① 循环遍历数组
- ② 参数是一个函数:function(item,index,originArray){return item*index}
- ③ 是匿名函数的return的值组成的新数组,数组长度和原数组相同
- ④ 原有数组不变
var result = ary.map(function(item,index,originArray){return item*index});
console.log(result);//[0, 2, 6, 12]
console.log(ary);//[1, 2, 3, 4]
- ···