有时候面试会提到,用的时候又不在意,今天有空挨个做了测试,总结如下:…
ES5中定义了五种数组的迭代方法:every(),filter(),forEach(),map(),some(). 每个方法都接受两个参数:要在每一项运行的函数(必选)和运行该函数的作用域的对象-影响this的值(可选); 每个方法中的函数都会接受三个参数:该项的值(item),该项在数组的位置(index),数组对象本身(arr); 目前支持的浏览器有:IE9+, Firefox1.5+, Firefox(Gecko)1.8+, Chrome, Opera, Safari. 1.every()…
做前端有多年了,看过不少技术文章,学了新的技术,但更新迭代快的大前端,庞大的知识库,很多学过就忘记了,特别在项目紧急的条件下,哪怕心中隐隐约约有学过一个方法,但会下意识的使用旧的方法去解决,多年前ES5几个新增的数组方法,好用但是常忘记用,趁着这周比较清闲,重温下并做下笔记,养成记笔记的好习惯. forEach map filter some every reduce reduceRight forEach forEach是ES5的Array方法中用得最频繁的一个,就是遍历,循环输出,它接受一个…
for不做赘述,相当简单: foreach方法: forEach() 方法用于调用数组的每个元素,并将元素传递给回调函数. 注意: forEach() 对于空数组是不会执行回调函数的. array.forEach(function(currentValue, index, arr), thisValue) map() : map() 方法返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值. map() 方法按照原始数组元素顺序依次处理元素. 注意: map() 不会对空数组进行检测.…
如果浏览器不支持forEach,map方法, 要我们自己封装一个, 该怎么操作呢? 1. forEach Array.prototype.forEach = function(fn) { if (this.length === 0) { return; } for (var i=0;i<this.length;i++) { fn(this[i], i, this) } } 2. map要复杂一点, 因为map最后会返回一个新数组 Array.prototype.map = function(fn…
对于前端的循环遍历我们知道有 针对js数组的forEach().map().filter().reduce()方法 针对js对象的for/in语句(for/in也能遍历数组,但不推荐) 针对jq数组/对象的$.each()方法 在语法和参数上他们有什么不同呢? 1.forEach: array.forEach(function(currentValue,index,arr), thisValue) 2.map: array.map(function(currentValue,index,arr)…
js中array有四个方法 foreach, map, every, some,其使用各有倾向. 关注点一:foreach 和 map 无法跳出循环,每个元素均执行 foreach 和 map 无法跳出循环,他们是对每个数组元素调用 callback: foreach 无返回值,在callbak中调用 break和 return无效: map 有返回值,返回当前数组的映射数组,其回调用需要使用 return 返回数组当前元素的映射值,使用 break无效. 何时使用:需要为数组每个元素执行运算并…
先总结: Set1.  成员不能重复2. 只有健值,没有健名,有点类似数组.3. 可以遍历,方法有add, delete,hasweakSet 1. 成员都是对象 2. 成员都是弱引用,随时可以消失. 可以用来保存DOM节点,不容易造成内存泄漏 3. 不能遍历,方法有add, delete,has Map 1. 本质上是健值对的集合,类似集合 2. 可以遍历,方法很多,可以干跟各种数据格式转换weakMap1. 直接受对象作为健名(null除外),不接受其他类型的值作为健名 2. 健名所指向的对…
特点:将键映射到值的对象,一个映射不能包含重复的键,每个键最多只能映射到一个值. Map集合和Collection集合的区别 Map集合:成对出现 (情侣)                                               双列集合 Collection:单个出现  (单身狗)   所以功能才这么多               单列集合 Key:键  Value:值 功能 1.添加功能 V put(K key,V value):添加元素 如果键是第一次存储,就直接存储,…
PHPforeach()跳出本次或当前循环与终止循环方法 PHP中用foreach()循环中,想要在循环的时候,当满足某个条件时,想 $arr = array('a','b','c','d','e'); $html = ''; foreach($arr as $key => $value){ if($value=='b'){ $html .= $value; continue; // 当 $value为b时,跳出本次循环 } if($value=='c'){ $html .= $value; b…
continue:跳出本次循环 break:终止循环 exit:用来结束程序执行 return: 用来结束一段代码     $arr= array('le','yang','jun','lecode','gagade'); $html= ''; foreach($arras $key => $value){ if($value=='b'){ $html.= $value; continue;// 当 $value为b时,跳出本次循环 } if($value=='c'){ $html.= $val…
$arr = array('a','b','c','d','e'); $html = ''; foreach($arr as $key => $value){ if($value=='b'){ $html .= $value; continue; // 当 $value为b时,跳出本次循环 } if($value=='c'){ $html .= $value; break; // 当 $value为c时,终止循环 } $html .= $value; } echo $html; // 输出: a…
Java容器类List.ArrayList.Vector及map.HashTable.HashMap的区别与用法 ArrayList 和Vector是采用数组方式存储数据,此数组元素数大于实际存储的数据以便增加和插入元素,都允许直接序号索引元素,但是插入数据要设计到数组元素移动等内存操作,所以索引数据快插入数据慢,Vector由于使用了synchronized方法(线程安全)所以性能上比ArrayList要差,LinkedList使用双向链表实现存储,按序号索引数据需要进行向前或向后遍历,但是插…
PHP中用foreach()循环中,想要在循环的时候,当满足某个条件时,想要跳出本次循环继续执行下次循环,或者满足某个条件的时候,终止foreach()循环,分别会用到:continue 与 break $arr= array('le','yang','jun','code','life','a','b','c'); $html= ''; foreach($arr as $key => $value){ if($value == 'a'){ $html.= $value; } if($value…
Map.Set.List不同数据结构的各种不同循环迭代的效率对比,使用场景 引申一个地址:Map迭代的使用keySet和entitySet的效率…
今天在网上看到一篇帖子,如题: 出处:前端开发博客 (http://caibaojian.com/5-array-methods.html) 在ES5中一共有9个Array方法,分别是: Array.prototype.indexOf Array.prototype.lastIndexOf Array.prototype.every Array.prototype.some Array.prototype.forEach Array.prototype.map Array.prototype.f…
1:  forEacharray.forEach(callback,[ thisObject]) // 遍历数组里面的所有数字// item 是值, i 是序号, array 是整个数组 [1, 2 ,3, 4].forEach(function(item, i, array){ /* 0 1 [1, 2, 3, 4] 1 2 [1, 2, 3, 4] 2 3 [1, 2, 3, 4] 3 4 [1, 2, 3, 4] */ console.log(i, item, array); }); 第2…
处理数组的forEach //forEach处理 if(!Array.prototype.forEach) { Array.prototype.forEach = function (callback) { for(var i=0,len=this.length;i<len;i++) { callback(this[i], i); } } } 处理数组的map //处理map if(!Array.prototype.map) { Array.prototype.map = function (c…
some if (!Array.prototype.some){ Array.prototype.some = function(fun /*, thisArg */) { 'use strict'; if (this === void 0 || this === null) throw new TypeError(); var t = Object(this); var len = t.length >>> 0; if (typeof fun !== 'function') throw…
Array共有九个方法   Array.prototype.indexOf Array.prototype.lastIndexOf Array.prototype.every Array.prototype.some Array.prototype.forEach Array.prototype.map Array.prototype.filter Array.prototype.reduce Array.prototype.reduceRight   我将挑选5种方法,我个人认为是最有用的,很…
ES5定义了五个迭代方法,每个方法都接收两个参数:要在每一项上运行的函数和运行该函数的作用域对象(可选的),作用域对象将影响this的值.传入这些方法中的函数会接收三个参数:数组的项的值.该项在数组中的位置和数组对象本身. 1.every() 和 some() every()是对数组中的每一项运行给定函数,如果该函数对每一项都返回true,则返回true. some()是对数组中的每一项运行给定函数,如果该函数对任一项返回true,则返回true. every()和some()很相似,他们都用于…
====forEach()和map()遍历 共同点: 1.都是循环遍历数组中的每一项. 2.forEach() 和 map() 里面每一次执行匿名函数都支持3个参数:数组中的当前项item,当前项的索引index,原始数组input. 3.匿名函数中的this都是指Window. 4.只能遍历数组. 1.forEach() 没有返回值. arr.forEach(function(value,index,array){ //do something }) 参数:value数组中的当前项, inde…
1.  [...].some(ck)函数       ----      某个一个为true,则为true 对数组中每个元素执行一次ck函数,知道某个元素返回true,则直接返回true.如果都返回false,则返回false 检查整个数组中是否有满足ck函数的元素. 1. var result = [1,5,3,6].some( (v,i) => (v>10) ) //所有元素都不满足,返回result = false 2. var result = [10,5,30,60].some( (…
ES6新增的常用数组方法 let arr = [1, 2, 3, 2, 1]; 一 forEach => 遍历数组 arr.forEach((v, i) => { console.log(v, i); }); 二 map => 使用一个数组, 利用某规则映射得到一个新数组 let mapArr = arr.map((v, i) => { return v * v; }); arr.map((v, i) => v * v); // 如果只有一句话, 可以省略大括号和return…
JS在1.6中为Array新增了几个方法map(),filter(),some(),every(),forEach(),也就是一共有这么多方法了. 刚开始接触这些倒也记得不是很清楚,在此纪录一下以加深影响.我主要从两个角度来理解和记忆吧,一个是API的使用,一个是内部实现. 函数简述 map():返回一个新的Array,每个元素为调用func的结果 filter():返回一个符合func条件的元素数组 some():返回一个boolean,判断是否有元素是否符合func条件 every():返回…
// forEach方法 var data = [{ name: "程咬金", sex: "1", age: 26 }, { name: "程才", sex: "0", age: 20 }, { name: "程新松", sex: "1", age: 22 }, { name: "程功", sex: "1", age: 18 } ]; let da…
遍历Array可以采用下标循环,遍历Map和Set就无法使用下标.为了统一集合类型,ES6标准引入了新的iterable类型,Array.Map和Set都属于iterable类型. 具有iterable类型的集合可以通过新的for ... of循环来遍历. <script>[键-->键值][key-->value] var arr=[ { name : '余佳品', age : "26" }, { name : '增利', age : "25"…
java8 forEach 在Map和List中的使用 原始的使用 Map<String, Integer> items = new HashMap<>(); items.put("A", 10); items.put("B", 20); items.put("C", 30); items.put("D", 40); items.put("E", 50); items.put(&qu…
Array.prototype.map = function(fun /*, thisp*/) { var len = this.length; if (typeof fun != "function") throw new TypeError(); var res = new Array(len); var thisp = arguments[1]; for (var i = 0; i < len; i++) { if (i in this) res[i] = fun.call…
例子 val v = Vector(,,,) ) println(s) //输出:Vector(2, 4, 6, 8) val v2 = Vector(,,,) var v3 = v2.reduce((sum,n) => sum + n) println(v3) //输出:1111 val vv = Vector(,,,) vv.foreach( n => sum += n) println(sum) //输出:2222…