数组方法介绍

介绍数组方法的基本用法

1. 数组的创建

1
2
3
4
5
var array= new Array();
var arra=[];
var array=[size];
var array=[ele,ele,ele,...]
var a=1; var array=[a,a+1];

2. 数组操作

2.1 array.push(ele,ele,..)和array.pop() 后进和后出

1
2
3
4
5
6
push将参数添加到原数组末尾,并返回数组的长度
var a = [1,2,3,4,5];
var b = a.push(6,7); //a:[1,2,3,4,5,6,7] b:7
pop删除原数组最后一项,并返回删除元素的值;如果数组为空则返回undefined
var a = [1,2,3,4,5];
var b = a.pop(); //a:[1,2,3,4] b:5

2.2 array.unshift(ele,ele,..)和array.shift() 先进和先出

1
2
3
4
5
6
将参数添加到原数组开头,并返回数组的长度
var a = [1,2,3,4,5];
var b = a.unshift(6,7); //a:[6,7,1,2,3,4,5] b:7
删除原数组第一项,并返回删除元素的值;如果数组为空则返回undefined
var a = [1,2,3,4,5];
var b = a.shift(); //a:[2,3,4,5] b:1

2.3 arrary.splice(index,many,ele,ele..)

1
2
3
4
index:插入或删除的起始位置 many:进行操作的长度 ele:要插入的值(可选)
数组中插入或者删除元素,改变原始数组,返回被删除的项目
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]

2.4 arrary.concat()

1
2
3
返回一个新数组,是将参数添加到原数组中构成的
var a = [1,2,3,4,5];
var b = a.concat(6,7); //a:[1,2,3,4,5] b:[1,2,3,4,5,6,7]

2.5 array.slice(0) array.concat()

1
2
3
4
5
6
7
8
拷贝数组
var array1 = new Array("1","2","3");
var array2;
array2 = array1.slice(0)
var array1 = new Array("1","2","3");
var array2;
array2 = array1.concat();

2.6 array.reverse()

1
2
3
将数组反序
var a = [1,2,3,4,5];
var b = a.reverse(); //a:[5,4,3,2,1] b:[5,4,3,2,1]

2.7 array.sort(sortby)

1
2
3
4
5
sortby:可选。规定排序顺序。必须是函数
数组排序
var a = [1,3,"a",2,5];
var b = a.sort();
console.log(a,b) [1, 2, 3, 5, "a"] [1, 2, 3, 5, "a"]

2.8 array.join(separator)

1
2
3
将数组的元素组起一个字符串,以separator为分隔符,省略的话则用默认用逗号为分隔符.
var a = [1,2,3,4,5];
var b = a.join("|"); //a:[1,2,3,4,5] b:"1|2|3|4|5"

ES5后新加入内容

2.8 array.forEach(function(v,i,a))

1
2
3
4
v:数值 i:索引 a:数组本身
数组元素,索引,数组本身,无提前终止break,可使用trycatch语句终止.
var a = [1,2,3,4,5];
a.forEach(function(v,i,a){a[i]=v+1;}) [2,3,4,5,6]

2.9 array.map()

1
2
3
每个元素传给指定的函数,返回一个数组,类似forEach但返回新数组
var a = [1,2,3];
b=a.map(function(x){return x*x;}) [1,4,9]

2.10 array.filter()

1
2
3
4
5
每个元素传给指定的函数,返回一个调用数组的子集
var a = [1,2,3];
b=a.filter(function(x){return x>1;})
console.log(a,b)
[1, 2, 3] [2, 3]

2.11 array.every() array.some()

1
2
3
4
每个元素传给指定的函数,返回true or falsse
var a = [1,2,3];
a.every(function(x){return x>1;}) false 所有
a.sone(function(x){return x>1;}) true 存在

2.12 array.reduce() array.reduceRight()

1
2
3
4
5
6
每个元素传给指定的函数,进行组合,传回单个值
var a = [1,2,3];
b=a.reduce(function(x,y){return x+y;},0) 求和
console.log(b)
2个参数 1个位所执行的函数 2位初始值(可选)
reduceRight() 从右到左执行

2.13 array.indexOf() array.lastIndexOf()

1
2
3
4
5
整个数组中搜寻给定的值,有返回其位置,无返回-1,lastIndexOf从右开始搜寻
var a = [1,2,3];
a.indexOf(1) 0
a.indexOf(6) -1
a.lastIndexOf(1) 2
分享到