目录
1.背景介绍
2.知识剖析
3.常见问题
4.解决方案
5.编码实战
6.扩展思考
7.参考文献
8.更多讨论
在js语言中,数组对象(即Array类型)是一种非常常用的类型,ECMAScript数组的每一项可以保存任何类型的数据。
数组对象的方法有很多:“转换方法”、“栈方法”、“队列方法”、“重排序方法”、“操作方法”、“迭代方法”等。
这次就针对“迭代方法”的内容进行介绍。
迭代方法
filter()、some()、map()、forEach()
每个方法都接收两个参数:
1、要在每一项上运行的函数。
2、运行该函数的作用域对象—this(可选)。
array.filter(function () {
//do your staff here;
}, this);
传入这些方法中的函数参数本身会接收三个参数:
1、数组项的值;
2、该项在数组中的位置;
3、数组对象本身;
array.forEach(function (item, index, array) {
//do your staff here;
}, this);
对一个数组 filter、some、map、foreach的操作分别有什么作用
filter():对数组中的每一项运行给定函数,返回该函数会返回true 的项组成的数组。
some():对数组中的每一项运行给定函数,如果该函数对任一项返回true,则返回true。
map():对数组中的每一项运行给定函数,返回每次函数调用的结果组成的数组。
forEach():对数组中的每一项运行给定函数。这个方法没有返回值。
var arr = [1,2,3,4,5];
console.log(arr.filter(function (item,index,array) {
console.log('item='+item+',index='+index+',array='+array);
return item>2;
}));
filter() 把原数组arr每一项返回为true的项,重新组成数组,并打印出该数组每个索引的值和数组长度。
var arr = [1,2,3,4,5];
console.log(arr.some(function (item,index,array) {
console.log('item='+item+',index='+index+',array='+array);
return item>2;
}));
some() ,在遍历数组项的时候,当第一个满足函数体的项出现,就直接返回true,并且不再执行后面的迭代。
var arr = [1,2,3,4,5];
console.log(arr.map(function (item,index,array) {
console.log('item='+item+',index='+index+',array='+array);
return item>2;
}));
map() 把原数组arr的每一项迭代返回的结果,重新组成数组,并打印出该数组每个索引的值和数组长度。
var arr = [1,2,3,4,5];
console.log(arr.forEach(function (item,index,array) {
console.log('item='+item+',index='+index+',array='+array);
return item>2;
}));
forEach():对数组中的每一项运行给定函数,这个方法并没有返回值。 forEach() ,只是对每个数组项运行指定的函数体,这个迭代方式并没有返回值。
Js 数组——filter()、map()、some()、every()、forEach()、lastIndexOf()、indexOf()
js数组操作--使用迭代方法替代for循环
感谢大家观看
By 汪胜