对js中foreach函数,map函数,filter函数,some函数,every函数,以及find函数和findIndex函数的理解

1…foreach函数,直接遍历原数组成员,不能操作原数组,没有返回值,如果你在foreach里使用了return,只能得到undefined.

2…map函数,对原数组进行遍历,如果你是对数组成员进行数据操作,那么就会将最终的操作结果(返回值)会放在一个新数组返回,如果你是单纯的筛选数组元素,也就是作个布尔值判断,满足条件就返回的那种,那就只会返回数组元素对应的true和false。

注意:如果数组成员全是基本数据类型,那么map对数据的操作并不会改变原数组的值,如果数组成员是对象类型,那么只要你对对象内部的属性进行操作那么就会改变原数组的值,这种情况下可以用扩展运算符进行浅拷贝来解决

3…filter函数,对原数组进行遍历,然后过滤器判断,对满足你条件的数组成员进行返回,返回到一个新数组中,filter函数与map函数不同,map函数会将满足条件的数组成员的对应的布尔值返回到新数组中,但是filter函数是实打实的将满足条件的数组成员返回新数组中,放心,不参假.

4…some函数,对原数组进行遍历,如果数组成员中有满足你设置的条件的成员的话,则直接返回true且不再遍历之后的成员,直接结束数组.some函数只要有一个满足条件的数组成员就会终止遍历,不会继续遍历后面的成员了,哪怕你后面还仍然有满足条件的数组成员那也没办法,谁叫你不是some函数遇见的第一个满足条件的数组成员呢?有句话怎么说的,他比你先来…所以对不起.
some函数如果直接return true的话会直接停止循环。

5…every函数,与some函数正好相反,如果数组中有一个不满足条件的数组成员,则直接结束遍历并且返回false,很抱歉啊,every函数就是这么任性.

6…find函数遍历数组,并且返回满足条件的第一个数组成员,之后便结束循环,不再遍历,比海王filter好得多,且行且珍惜.

7…findIndex函数遍历数组,并且返回满足条件的第一个数组成员对应的索引值,之后便结束循环,findIndex函数还真是热情如火啊,find函数只是拐跑了对的人,findIndex一见面把人家家里的地址都搞到手了,这是要干嘛?


版权声明:本文为m0_58399188原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。