数组循环 ES5新增方法

1. arr.forEach()   // 代替for 循环

let arr = ['1','2','3','4','5'];

arr.forEach(function(val,index,arr){
   console.log(val,index,arr);
});

2. arr.map()   //做数据交互,映射

正常情况下,需要配合return,返回一个新的数组,若没有相当于forEach。

注意:平时用map,一定要用return

let arr = [
    {title:'aaa',read:'100',hot:true},
    {title:'bbb',read:'200',hot:true},
    {title:'ccc',read:'300',hot:true},
    {title:'ddd',read:'400',hot:true}      
];

let arr1=arr.map((item,index,arr)=>{
     let json={};
     json.t=`你好${item.title}`;
     json.r=item.read; 
     return json;
});

console.log(arr1)

3. arr.filter()   //过滤  过滤一些不合格'' 元素 '',如果回调函数返回的是true 就留下来

let arr = [
    {title:'aaa',read:'100',hot:true},
    {title:'bbb',read:'200',hot:false},
    {title:'ccc',read:'300',hot:true},
    {title:'ddd',read:'400',hot:false}      
];

let arr1=arr.filter((item,index,arr)=>{
    return item.read==100;  
});

console.log(arr1)

4. arr.some()   //类似查找  返回true  和 false

数组里面某一个元素符合条件,返回true

5. arr.every()  //查找

数组里面所有的元素符合条件,返回true

arr.forEach/map/filter/some/every (循环回调函数,this指向谁)    //有两个参数

也可以用箭头函数,但是this指向会受箭头影响

6. arr.reduce()   // reduce减少     从左往右

   求数组的和、阶乘

let arr=[2,2,3];

let res= arr.reduce((prev,cur,index,arr)=>{
    return Math.pow(prev.cur)   //

    // 幂运算符
    //2**3
})

console.log(res);

 

7. arr.reduceRight()   从右往左

 

ES6  的 for...of... 循环

let arr = ['a','b','c'];

for(let val of arr){
   console.log(val)
}

for(let index of arr.keys()){
   console.log(index)
}

for(let item of arr.entries()){
   console.log(item)
} 

for(let [key,val] of arr.entries()){
    console.log(key,val)
}

 

数组操作

1.arr.find()    查找 找出第一个符合条件的数组成员  ,如果没有找到,返回undefinded

let arr=[1,2,34,5,63];

let res-arr.find((val,index.arr)=>{
    return val >2
})
console.log(res)   //找到的只是第一个满足条件的元素

 arr.findIndex()   找位置  没有找到返回 -1

2Array.of()  把一组值,转成数组

let arr = Array.of('1','3','6');

3.Array.from()

作用:把类数组(获取一组元素、arguments。。。)对象转成数组

具有length就靠谱

let json={
   0:'a',
   1:'b',
   2:'c',
   length:2
}
let arr=Array.from(json)

4.arr.fill()  填充 

arr.fill(填充的东西,开始的位置,结束的位置)

 

ES6新增

arr.includes() 包含

arr.indexOf()

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值