ECMAScript5新加的数组操作:在IE8及以下不兼容。
通用模式为:arr.方法名(function (value(数组元素),index(数组下标),arr(函数本身)) {函数主体},参数二);
一般调用函数的三个参数,后两个可以省略,只传入数组元素参数即可。
参数二可以省略;如果有,则调用的函数被看作是参数二的方法。
--------------------------------------------------------------------------------------------------------
1,arr.forEach();
遍历
例如:
①var arr = [22,2,3,1,11];
var s = 0;
var arr1 = arr.forEach(function (v) {
return s += v;
});
s的值39;
arr的值是[22,2,3,1,11]
②var arr = [22,2,3,1,11];
var arr1 = arr.forEach(function (v,i,a) {
return a[i] = v + 1;
});
arr的值是[23,3,4,2,12]
--------------------------------------------------------------------------------------------------------
2,var i = arr.map();
调用数组的每一个元素传递给指定函数,并返回一个数组
例如:
①var arr = [22,2,3,1,11];
var s = 0;
var arr1 = arr.map(function (v) {
return s += v;
});
返回值arr1为[22,24,27,28,39]
s的值是39
arr的值是[22,2,3,1,11]
--------------------------------------------------------------------------------------------------------
3,var arr1 = arr.filter();
过滤
例如:
var arr = [22,2,3,1,11];
var arr1 = arr.filter(function (v) {
return v > 3;
});
返回值arr1为[22,11]
arr的值是[22,2,3,1,11]
--------------------------------------------------------------------------------------------------------
4,var arr1 = arr.every();
数组与门判断,所有数组元素都为true时,才返回true;当有一个返回false则返回false,且不在遍历下去
例如:
①var arr = [22,2,3,1,11];
var arr1 = arr.filter(function (v) {
return v > 3;
});
返回值arr1为false
arr的值是[22,2,3,1,11]
②var arr = [22,2,3,1,11];
var arr1 = arr.filter(function (v) {
return v > 0;
});
返回值arr1为true
arr的值是[22,2,3,1,11]
--------------------------------------------------------------------------------------------------------
5,var arr1 = arr.some();
数组或门判断,所有数组元素都为false时,才返回true;当有一个返回true则返回true,且不在遍历下去
例如:
①var arr = [22,2,3,1,11];
var arr1 = arr.filter(function (v) {
return v > 3;
});
返回值arr1为false
arr的值是[22,2,3,1,11]
②var arr = [22,2,3,1,11];
var arr1 = arr.filter(function (v) {
return v > 0;
});
返回值arr1为true
arr的值是[22,2,3,1,11]
--------------------------------------------------------------------------------------------------------
6,var arr1 = arr.indexOf(*,index);*为单一的任一值,从头至尾搜索
var arr1 = arr.lastIndexOf(*,index);*为单一的任一值,从尾至头搜索
通用模式为:arr.方法名(function (value(数组元素),index(数组下标),arr(函数本身)) {函数主体},参数二);
一般调用函数的三个参数,后两个可以省略,只传入数组元素参数即可。
参数二可以省略;如果有,则调用的函数被看作是参数二的方法。
--------------------------------------------------------------------------------------------------------
1,arr.forEach();
遍历
例如:
①var arr = [22,2,3,1,11];
var s = 0;
var arr1 = arr.forEach(function (v) {
return s += v;
});
s的值39;
arr的值是[22,2,3,1,11]
②var arr = [22,2,3,1,11];
var arr1 = arr.forEach(function (v,i,a) {
return a[i] = v + 1;
});
arr的值是[23,3,4,2,12]
--------------------------------------------------------------------------------------------------------
2,var i = arr.map();
调用数组的每一个元素传递给指定函数,并返回一个数组
例如:
①var arr = [22,2,3,1,11];
var s = 0;
var arr1 = arr.map(function (v) {
return s += v;
});
返回值arr1为[22,24,27,28,39]
s的值是39
arr的值是[22,2,3,1,11]
--------------------------------------------------------------------------------------------------------
3,var arr1 = arr.filter();
过滤
例如:
var arr = [22,2,3,1,11];
var arr1 = arr.filter(function (v) {
return v > 3;
});
返回值arr1为[22,11]
arr的值是[22,2,3,1,11]
--------------------------------------------------------------------------------------------------------
4,var arr1 = arr.every();
数组与门判断,所有数组元素都为true时,才返回true;当有一个返回false则返回false,且不在遍历下去
例如:
①var arr = [22,2,3,1,11];
var arr1 = arr.filter(function (v) {
return v > 3;
});
返回值arr1为false
arr的值是[22,2,3,1,11]
②var arr = [22,2,3,1,11];
var arr1 = arr.filter(function (v) {
return v > 0;
});
返回值arr1为true
arr的值是[22,2,3,1,11]
--------------------------------------------------------------------------------------------------------
5,var arr1 = arr.some();
数组或门判断,所有数组元素都为false时,才返回true;当有一个返回true则返回true,且不在遍历下去
例如:
①var arr = [22,2,3,1,11];
var arr1 = arr.filter(function (v) {
return v > 3;
});
返回值arr1为false
arr的值是[22,2,3,1,11]
②var arr = [22,2,3,1,11];
var arr1 = arr.filter(function (v) {
return v > 0;
});
返回值arr1为true
arr的值是[22,2,3,1,11]
--------------------------------------------------------------------------------------------------------
6,var arr1 = arr.indexOf(*,index);*为单一的任一值,从头至尾搜索
var arr1 = arr.lastIndexOf(*,index);*为单一的任一值,从尾至头搜索
搜索特定的值,返回该值的下标位置,index值从此下标位置开始搜索。找不到返回值为-1;
var arr = [22,2,2,2,1,11]
var index = [];
var i = 0;
while(i < arr.length){
i = arr.indexOf(2,i)
if (i == -1) {
break;
}
else {
index.push(i);
}
i += 1;
}
index的值为所有指定元素的下标值[1,2,3]
arr的值为[22,2,2,2,1,11]
var arr = [22,2,2,2,1,11]
var index = [];
var i = 0;
while(i < arr.length){
i = arr.indexOf(2,i)
if (i == -1) {
break;
}
else {
index.push(i);
}
i += 1;
}
index的值为所有指定元素的下标值[1,2,3]
arr的值为[22,2,2,2,1,11]
--------------------------------------------------------------------------------------------------------
7,var arr1 = arr.reduce();
var arr1 = arr.reduceRight();
使用指定函数将数组元素进行组合,生成单个值。
var arr1 = arr.reduceRight();
使用指定函数将数组元素进行组合,生成单个值。