-
shift:
删除原数组第一项,并返回删除元素的值;如果数组为空则返回undefined。
var a = [1,2,3,4,5];
var b = a.shift();
// a = [2,3,4,5] ;b = 1
-
unshift
将参数添加到原数组头部,并返回数组的长度。
var a = [1,2,3,4,5]
var b = a.unshift(-1,0)
// a = [-1,0,1,2,3,4,5];b = 7
-
pop
删除数组最后一项,并返回删除元素的值;如果数组为空返回undefined。
var a = [1,2,3,4,5]
var b = a.pop()
a = [1,2,3,4];b = 5
-
push
将参数添加到原数组末尾,并返回数组的长度。
var a = [1,2,3,4,5]
var b = a.push(6,7)
// a = [1,2,3,4,5,6,7];b = 7
-
concat
返回一个新数组,是将参数添加到原数组后面中构成的,原数组不变。
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]
-
splice(start,deleteCount,val1,val2,...)
从start位置开始删除deleteCount项,并从该位置其插入val1,val2,...,并返回删除的数组。
var a = [1,2,3,4,5];
var b = a.splice(2,2,6,7,8);// a = [1,2,6,7,8,5];b = [3,4]
var a = [1,2,3,4,5];
var b = a.splice(0,1); //作用同shift
var a = [1,2,3,4,5];
var b = a.splice(0,0,-1,0);// a = [-1,0,1,2,3,4,5];b = []
var a = [1,2,3,4,5];
var b = a.splice(a.length-1,1);//a = [1,2,3,4];b=[5]
var a = [1,2,3,4,5];
var b = a.splice(a.length,0,6,7);//a = [1,2,3,4,5,6,7];b = []
-
reverse
将数组反序
var a = [1,2,3,4,5]
var b = a.reverse();
// a = [5,4,3,2,1];b = [5,4,3,2,1]
-
sort(orderfunction)
按指定的参数对数组进行排序,数组在原数组上进行排序,不生成副本。
如果调用该方法时没有使用参数,将按字母顺序对数组中的元素进行排序,说得更精确点,是按照字符编码的顺序进行排序。要实现这一点,首先应把数组的元素都转换成字符串(如有必要),以便进行比较。
如果想按照其他标准进行排序,就需要提供比较函数,该函数要比较两个值,然后返回一个用于说明这两个值的相对顺序的数字。比较函数应该具有两个参数 a 和 b,其返回值如下:
若 a 小于 b,在排序后的数组中 a 应该出现在 b 之前,则返回一个小于 0 的值。
若 a 等于 b,则返回 0。
若 a 大于 b,则返回一个大于 0 的值。
var a = [33,4,111,222];
a.sort();//[111,222,33,4]
a.sort(function(a,b){
return a - b;
});// 4,33,111,222
a.sort(function(a,b){
return b - a;
});// 222,111,33,4
var 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"]
-
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]
-
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"
-
toString()
将每个元素转化为字符串,与不带任何参数的join()方法返回的字符串一样。
[1,2,3].toString();//"1,2,3"
['a','b','c'].toString();//"a,b,c"
[1,[2,'c']].toString();//"1,2,c"
ES5中新增的9种方法:forEach()、map()、every()、some()、reduce()、reduceRight()、indexOf()和lastIndexOf()。
ES5中新增的Array方法详细说明-张鑫旭
-
forEach()
对数组进行遍历循环,对数组中的每一项运行给定函数。这个方法没有返回值。参数都是function类型,默认有传参,参数分别为:遍历的数组内容;第对应的数组索引,数组本身。
var a = [1,2,3,4,5]
a.forEach(function(value{
sum += value;
})
-
map()
map()方法将调用的数组的每个元素传递给指定的函数,并返回一个数组,它包含该数组的返回值。
var a = [1,2,3]
var b = a.map(function(x) {return x*x;})// [1,4,9]
-
filter()
map()方法将调用的数组的每个元素传递给指定的函数,并返回一个数组,它包含该数组的返回值。
var a = [1,2,3,4,5]
var smallvalues = a.filter(function(x){return x < 3}) // [2,1]
-
every()和some()
every()和some()方法是数组的逻辑判定:它们对数组元素应用指定的函数进行判定,返回true或false。som()在判定函数第一次返回true后就停止遍历,并返回true。every在判定false后就停止判定,返回false。
var a = [1,2,3,4,5]
a.every(function(x){return x < 10}) // true
a.every(function(x){return x % 2 ===0 }) // false
a.some(function(x){return x % 2 ===0 }) // true
-
indexOf()和lastIndex()
搜索整个数组中具有给定值的元素,返回找到的第一个元素的索引或者如果没有找到就返回-1.indexOf()从头至尾搜索,而lastIndexOf()则反向搜索。
var a = [1,2,3,4,5]
a.indexOf(1)// 0
a.lastIndexOf(1)// 4
a.indexOf(6)// -1