对于数组的every、filter、forEach、map、some方法的区别总结
来源:互联网 发布:手机上好用的网络电视 编辑:程序博客网 时间:2024/05/06 07:55
对于数组的every、filter、forEach、map、some方法的区别总结
最近对数组、JSON格式的遍历方法一直有很多疑问?什么是遍历?感觉一团糟,所有深感基础差,难以理解。下面是我做的一些试验:
以数组var arr=[10,11,12,13]
为例;
every
1. 返回的是Boolean值:(比较有趣的事,如果你不返回Boolean值,那它只会执行一次,callback接收三个参数(a,b,c))
2. a是数组值,b是数组下标,c返回的是数组里所有的值,
var arr=[18,10,12,13];var count=0;var ele=arr.every(function(a,b,c){ count++})console.log(ele+';'+count)//false;1
var arr=[18,10,12,13]; var count=0; var ele=arr.every(function(a,b,c){ count++ return true }) console.log(ele+';'+count)// true;4
3.由上可以看出我们可以用every来判断整个数组里的值,是否满足我们的条件;
var arr=[18,10,12,13]; var count=0; var ele=arr.every(function(a,b,c){ count++ return a>6 }) console.log(ele+';'+count)//true;4
some
1.some和上面的every的区别在于:从数组的第一个值开始,依次往后找,只要数组中有值满足条件就停止,并返回Boolean值
map
1.返回新的数组
var arr=[9,10,12,13]; var count=0; var ele=arr.map(function(a,b,c){ count++ }) console.log(ele+';'+count)// ,,,;4
2.由上可以看出如果没有条件就返回的空值,但还是执行了4次;
var arr=[9,10,12,13]; var count=0; var ele=arr.map(function(a,b,c){ count++ return a+10 }) console.log(ele+';'+count+';'+arr)//19,20,22,23;4;9,10,12,13
3.可以看出执行的是新数组(没有筛选的能力),原数组没有变;
filter
1.从字面上理解filter是筛选的意思,返回新数组;
var arr=[9,10,12,13]; var count=0; var ele=arr.filter(function(a,b,c){ count++ return a>10//如果改为a+10;就是没有筛选条件返回原数组值; }) console.log(ele+';'+count+';'+arr)// 12,13;4;9,10,12,13
forEach
1.forEach只是执行函数,它不像mapp,filter要返回新的数组;
var arr=[9,10,12,13];var count=0;var ele=arr.forEach(function(a,b,c){ count++ return arr[b]=(arr[b]+10)})console.log(ele+';'+count+';'+arr)//undefined;4;19,20,22,23
小结:
1.every,some,返回的是Boolean值;
2.map,filter返回的是新的数组;
3.forEach只是执行函数没有返回值;
4.Object.keys(arr)—-自己动手试试;
以上总结的比较简单,应该还有其它的没有总结到,有兴趣补充的朋友可以写到留言里面;大家相互帮助嘛;
0 0
- 对于数组的every、filter、forEach、map、some方法的区别总结
- js数组的迭代器方法(some、every、forEach、map、filter)
- 数组的5中迭代方法 filter()、map()、forEach()、every()、 some()
- js数组的迭代器方法(some、every、forEach、map、filter)
- Array 的五种迭代方法(every/filter/forEach/map/some)
- Array 的五种迭代方法 -----every() /filter() /forEach() /map() /some()
- 一张图看懂JavaScript中数组的迭代方法:forEach、map、filter、reduce、every、some
- javascript中数组的迭代方法对比:forEach()、map()、reduce()、some()、every()、filter()图解
- js数组的遍历方法filter()、map()、some()、every()、forEach()、lastIndexOf()、indexOf()
- JavaScript中数组的迭代方法:forEach、map、filter、reduce、every、some
- 一张图看懂JavaScript中数组的迭代方法:forEach、map、filter、reduce、every、some
- JAVASCRIPT中数组的迭代方法:FOREACH、MAP、FILTER、REDUCE、EVERY、SOME各个说明
- JavaScript 遍历方法总结 forEach some every filter map includes
- javascript中数组遍历方法forEach,every,some的区别
- js数组filter map forEach every some以及jquery的each 操作
- JS数组方法总结shift()、unshift()、pop()、push()、concat()、splice()、filter()、map()、some()、every()、forEach()等方法
- 重写数组迭代新方法every,filter,map,some,forEach
- JS数组filter()、map()、some()、every()、forEach()、lastIndexOf()、indexOf()实例
- RUBY-超大数字操作
- 输出VC的反汇编代码到文件
- Android APK 签名比对详解
- 【服务器】PHP+APACHE+MYSQL 建站全过程,包括二级域名设置 (
- 关于Fragment栈的问题
- 对于数组的every、filter、forEach、map、some方法的区别总结
- iOS开发系列--打造自己的“美图秀秀”
- LINUX下MYSQL的启动及相关配置
- poi操作Excel, 各种具体操作和解释
- jquery ajax调用服务器端指定的函数的三种方式
- 11. Container With Most Water
- 标准C++中的string类的用法总结
- 快速排序
- PowerBuilder9.0自动检测注册ASA8.0