数组:
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);
}