1. forEach const colors = ['red', 'blue', 'green'] colors.forEach(function (params) { console.log(params) }) 2. map  重构-返回数组 const porducts = [ { name: 'cucumber', type: 'vegetable', quantity: 0, price: 1 }, { name: 'cucumber', type: 'vegetable', qua…
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…
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…
做前端有多年了,看过不少技术文章,学了新的技术,但更新迭代快的大前端,庞大的知识库,很多学过就忘记了,特别在项目紧急的条件下,哪怕心中隐隐约约有学过一个方法,但会下意识的使用旧的方法去解决,多年前ES5几个新增的数组方法,好用但是常忘记用,趁着这周比较清闲,重温下并做下笔记,养成记笔记的好习惯. forEach map filter some every reduce reduceRight forEach forEach是ES5的Array方法中用得最频繁的一个,就是遍历,循环输出,它接受一个…
处理数组的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…
ES6数组方法 以下方法添加到了Array.prototype对象上(isArray除外) indexOf 类似字符串的indexOf()方法 stringObject.indexOf(searchvalue,fromindex) var data = [2, 5, 7, 3, 5]; console.log(data.indexOf(5, "x")); // 1 ("x"被忽略) console.log(data.indexOf(5, "3")…
ES6 数组方法拓展 1.Array.from() Array.from方法用于将两类对象转为真正的数组:类似数组的对象(array-like object)和可遍历(iterable)的对象(包括ES6新增的数据结构Set和Map).下面是一个类似数组的对象,Array.from将它转为真正的数组. let arrayLike = { '0': 'a', '1': 'b', '2': 'c', length: 3 }; // ES5的写法 var arr1 = [].slice.call(ar…
听说for循环已经成了菜鸟标配...? 瑟瑟发抖 赶紧找来资料补一补 1, forEach循环,循环数组中每一个元素并采取操作, 没有返回值, 可以不用知道数组长度 2, map函数,遍历数组每个元素,并回调操作,需要返回值,返回值组成新的数组,原数组不变 3,filter函数, 过滤通过条件的元素组成一个新数组, 原数组不变 4, some函数,遍历数组中是否有符合条件的元素,返回Boolean值 5,every函数, 遍历数组中是否每个元素都符合条件, 返回Boolean值 原文引用:htt…
forEach  some  filter  findIndex这些都属于数组的新方法,都会对数组中的每一项,进行遍历,执行相关的操作: 只不过在循环的时候有些不一样 参考资料:https://wangdoc.com/javascript/stdlib/array.html#filter…
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> </head> <body> </body> </html> <script> //数组,冒泡排序,把数组从小到大排序 function bubbleSort(array) { if(Object.prototype.t…
ES5 方法 indexOf和lastIndexOf 都接受两个参数:查找的值.查找起始位置不存在,返回 -1 :存在,返回位置.indexOf 是从前往后查找, lastIndexOf 是从后往前查找. var a = [2, 9, 9]; a.indexOf(2); // 0 a.indexOf(7); // -1 if (a.indexOf(7) === -1) { // element doesn't exist in array } var numbers = [2, 5, 9, 2]…
关于数组中forEach() .map().filter().reduce().some().every()的总结 1. forEach() let array = [1,2,3,4]; array.forEach((item, index, array) => { console.log(item); }); forEach会遍历数组, 没有返回值, 不允许在循环体内写return, 不会改变原来数组的内容. 2. map() let array = [1, 2, 3, 4]; let tem…
好家伙,来复习几个数组方法, 1.forEach循环与some循环 代码如下: <script> const arr =['奔驰','宝马','GTR','奥迪'] //forEach循环一旦开始,无法在中间被停止 arr.forEach((item,index)=>{ console.log(item) console.log(index) if(item ==='GTR'){ console.log('找到GTR了') console.log(item) console.log(in…
周五,再过会要下班了,刚才把<javascript高级程序设计>数组这块又看了下,加深下记忆.今天来继续练练笔,嘿嘿!(写下自己印象不深的东西) 一.数组的定义(数组定义分为两种) 方法一:1 var color=new Array(num);//num为数字,(当然可写,可不写) 表示数组长度 var color=new Array("red","yellow");//直接定义数组内容 方法二: 2.var color=[];//当然也可以定义的时候直…
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…
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( (…
JS在1.6中为Array新增了几个方法map(),filter(),some(),every(),forEach(),也就是一共有这么多方法了. 刚开始接触这些倒也记得不是很清楚,在此纪录一下以加深影响.我主要从两个角度来理解和记忆吧,一个是API的使用,一个是内部实现. 函数简述 map():返回一个新的Array,每个元素为调用func的结果 filter():返回一个符合func条件的元素数组 some():返回一个boolean,判断是否有元素是否符合func条件 every():返回…
ES6已经到了非学不可的地步了,对于ES5都不太熟的我决定是时候学习ES5了. 1.  js 数组循环遍历. 数组循环变量,最先想到的就是 for(var i=0;i<count;i++)这样的方式了. 除此之外,也可以使用较简便的forEach 方式 2.  forEach 函数. 使用如下: function logArrayElements(element, index, array) { console.log('a[' + index + '] = ' + element); } //…
function greptest() { var arr = "1,2,3,'',one,two,three".split(','); var newarr = $.grep(arr, function (num, ind) { return isNaN(num); //两个方法之间的差别 }); console.log(newarr); } function maptest() { var arr = "1,2,3,'',one,two,three".split…
数组中常用的高阶方法: foreach    map    filter    reduce    some    every 在这些方法中都是对数组中每一个元素进行遍历操作,只有foreach是没有返回值的,reduce是的回调函数中,是有四个参数的,下面说一下他们的基本用法   map:    映射,可以对数组中每个元素进行操作,并逐一返回,生成一个理想的新数组 arr.map(function(item,index,arr){ .............. }) //map方法内可以传入一…
对于前端的循环遍历我们知道有 针对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)…
一:数组的常用方法: 1:join(); 将数组转为字符串显示.不输入参数,默认以逗号连接:输入参数,则以参数连接. var arr=[1,2,3]; console.log(arr.join()); // 1,2,3; console.log(arr.join("_")); // 1_2_3; console.log(arr); // [1,2,3]; 原数组不变. 2:reverse(); 将数组逆序排列,原数组被修改. var arr=[1,2,3]; var arr2=arr.…
一. Array.from() : 将伪数组对象或可遍历对象转换为真数组 1.何为伪数组 如果一个对象的所有键名都是正整数或零,并且有length属性,那么这个对象就很像数组,语法上称为"类似数组的对象"(array-like object),即为伪数组. var obj = { 0: 'a', 1: 'b', 2: 'c', length: 3 }; obj[0] // 'a' obj[1] // 'b' obj.length // 3 obj.push('d') // TypeEr…
js中array有四个方法 foreach, map, every, some,其使用各有倾向. 关注点一:foreach 和 map 无法跳出循环,每个元素均执行 foreach 和 map 无法跳出循环,他们是对每个数组元素调用 callback: foreach 无返回值,在callbak中调用 break和 return无效: map 有返回值,返回当前数组的映射数组,其回调用需要使用 return 返回数组当前元素的映射值,使用 break无效. 何时使用:需要为数组每个元素执行运算并…
前言 近一段时间,因为项目原因,会经常在前端对数组进行遍历.处理,JS自带的遍历方法有很多种,往往不加留意,就可能导致知识混乱的现象,并且其中还存在一些坑.前端时间在ediary中总结了js原生自带的常用的对数组遍历处理的方法,分别为:map.forEach.filter,在讲解知识点的同时,会类比相识的函数进行对比,这样会有助于思考方法的利与弊. **************************************************************************…
ES5中定义了五种数组的迭代方法:every(),filter(),forEach(),map(),some(). 每个方法都接受两个参数:要在每一项运行的函数(必选)和运行该函数的作用域的对象-影响this的值(可选); 每个方法中的函数都会接受三个参数:该项的值(item),该项在数组的位置(index),数组对象本身(arr); 目前支持的浏览器有:IE9+, Firefox1.5+, Firefox(Gecko)1.8+, Chrome, Opera, Safari. 1.every()…
数组方法map(映射),reduce(规约),foreach(遍历),filter(过滤) map()方法返回一个由原数组中每一个元素调用一个指定方法后返回的新数组 reduce()方法接受一个函数作为累加器,数组中的每一个值开始缩减,最终为一个值.最终的返回结果为一个值 foreach() 遍历数组方法 filter() 方法使用指定的函数测试所有元素,并创建一个包含所有通过测试的元素的新数组   map,filter都是生成一个新数组,不同的是map处理的方法里面returen 新数值,fi…
ECMA Script5中数组方法如indexOf().forEach().map().filter().some()并不支持IE6-8,但是国内依然有一大部分用户使用IE6-8,而以上数组方法又确实非常好用.在过去,我会为了兼容性尽量不用这些方法.但是,总不能为了旧的丢了新的吧?!虽然说jQuery已经集成好了不少语法糖,但jQuery体积太庞大,作为一名志于体面的前端儿得知道原生的兼容性写法要怎么写.于是这几天,我开始在琢磨这些方法的兼容性写法.其实并不难,就是以前不够自信不敢写.写完以后,…
ECMAScript5标准发布于2009年12月3日,它带来了一些新的,改善现有的Array数组操作的方法.然而,这些新奇的数组方法并没有真正流行起来的,因为当时市场上缺乏支持ES5的浏览器.     Array "Extras"   没有人怀疑这些方法的实用性,但写polyfill(PS:兼容旧版浏览器的插件)对他们来说是不值得的.它把“必须实现”变成了“最好实现”.有人居然将这些数组方法称之为Array "Extras".哎!   但是,时代在变化.如果你看看G…
一.symbol 回顾数据类型: 基本类型(原始类型): String Number Boolean Undifined Null Symbol 引用类型: Objects 1.1 创建symbol 1. ES 6 为什么引入 Symbol 类型? a.为了确保每个属性的名称都是独一无二的,从根本上防止属性名的冲突. b.引入 Symbol 类型之后,对象的属性名就有了两种类型,一种是 String 类型的数据,另一种就是 Symbol 类型的数据   2. 怎样创建 Symbol 类型的数据呢…