小课堂【萌新】

对一个数组 filter、some、map、foreach的操作分别有什么作用

分享人:汪胜

目录

1.背景介绍

2.知识剖析

3.常见问题

4.解决方案

5.编码实战

6.扩展思考

7.参考文献

8.更多讨论

1.背景介绍

在js语言中,数组对象(即Array类型)是一种非常常用的类型,ECMAScript数组的每一项可以保存任何类型的数据。

数组对象的方法有很多:“转换方法”、“栈方法”、“队列方法”、“重排序方法”、“操作方法”、“迭代方法”等。

这次就针对“迭代方法”的内容进行介绍。

2.知识剖析

迭代方法

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() ,只是对每个数组项运行指定的函数体,这个迭代方式并没有返回值。

3.常见问题

4.解决方案

5.编码实战

6.扩展思考

7.参考文献

Js 数组——filter()、map()、some()、every()、forEach()、lastIndexOf()、indexOf()

js数组操作--使用迭代方法替代for循环

8.更多讨论

鸣谢

感谢大家观看

By 汪胜