数组: es5新增一些东西 循环 : 1.for for(let i=0;i<arr.length;i++) 2.while
arr.foreach()//代替普通函数 let arr = ['菠萝','雪梨','香蕉','苹果','桃子']; arr.forEach(function (val,index,arr) { console.log(val,index,arr); }); let arr = ['菠萝','雪梨','香蕉','苹果','桃子']; arr.forEach(function (val,index,arr) { console.log(this,val,index,arr); }.bind(123)); arr.map()//非常有用,做数据交互“映射” // 正常情况下,需要配合return, 返回是一个新的数组 //若是没有人return,相当于 forEach注意:平时只要用map,一定是要有return的 mao可以做重新整理数据结构用 [{title:‘aaa’}]->[{t:‘aaaaaa’}]//详情见代码 arr.filter();//过滤,过滤一些不合格的“元素”,如果回调函数返回true,就留下来 arr.some();//类似查找,数组里面某一个元素符合条件,返回true arr.every();//数组里面所有的元素都要符合条件才能返回true
其实上面他们可以接收两个参数: arr.forEach/map/..every...(循环回调函数,this指向谁)================================
arr.reduce();//从左往右 //求数组的和/阶乘 let arr = [2,2,4]; let res = arr.reduce((prev,cur,index,arr)=>{ return prev*cur;/2*3*4=16 });//四个参数,prev是当前数组第一个,cur为下一个数组元素 console.log(res);附加:Math.pow()与**的效果是一个样的 就是幂运算 为8
arr.reduceRight();//从右往左
================================ for…of…循环
arr.keys() 数组下标 arr.entries() 数组某一项
for(let val of arr){ console.log(val); }