Array对象 --ES5学习笔记(二)
1、forEach方法
Array.prototype.forEach ( callbackfn [ , thisArg ] )
1)如果提供了一个 thisArg 参数,它会被当作 this 值传给每个 callbackfn 调用。如果没提供它,用 undefined 替代。
2)callbackfn参数列表 value,index,array
value:每次遍历的当前值
index:数组下标
array:当前数组
var data = [3,2,5,6];data.forEach(function(value,i,c){
data[i] = value+1;
console.log(c)
})console.log(data)
--输出结果
对 forEach 的调用不直接更改对象,但是对 callbackfn 的调用可能更改对象。
2)map方法
Array.prototype.map ( callbackfn [ , thisArg ] )
将调用的数组的每个元素传个指定函数,并返回一个数组。并不会改变原有数组
参数及调用方式同forEach
callbackfn应该有返回值
var data = [4,3,5,6];var dclone = data.map(function(value,i,c){
return value+1;
})console.log(dclone)
console.log(data)
3、filter
Array.prototype.filter ( callbackfn [ , thisArg ] )
filter返回指定数组的一个子集。 参数同foreach
var data = [4,3,5,6];var dfilter = data.filter(function(value,i,c){
return value>4;
})console.log(dfilter)
console.log(data)
结果:
4、some和array
用于进行数组的逻辑判断,some即存在,every即所有
在空数组上调用,some返回false;every返回true
5、reduce和reduceRight
Array.prototype.reduce ( callbackfn [ , initialValue ] )
参数列表
callbackfn
previousValue :(initialValue 的值或上次调用 callbackfn 的返回值
currentValue:当前元素的遍历对象
index:当前元素下标
array:遍历的数组
如果为 reduce 调用提供了一个 initialValue,则 previousValue 将等于 initialValue 并且 currentValue 将等于数组的首个元素值。
如果没提供 initialValue,则 previousValue 将等于数组的首个元素值并且 currentValue 将等于数组的第二个元素值。
如果数组里没有元素并且没有提供 initialValue,则抛出一个 TypeError 异常
var data = [4,5,6,7];console.log(data.reduce(function(a,b){return a+b;}));
console.log(data.reduce(function(a,b){return a+b;},10));
结果:
22
32
reduceRight处理按索引从高到低处理
6、indexOf 和 lastIndexOf
Array.prototype.indexOf ( searchElement [ , fromIndex ] )
用于查找数组中是否存在指定的值,不存在返回-1
fromIndex:指定开始搜索的下标
标题:Array对象 --ES5学习笔记(二)
作者:hugh0524
地址:https://blog.uproject.cn/articles/2016/06/22/1466588778216.html
0 0