循环方法 forEach、map、filter

前后端交互或者数据展示的时候,如何选用正确的循环方法来提高效率呢?

1 : For循环  

       适用于任何情况的循环,在for循环中中直接使用判断或者函数来进行数据筛选、重写数据结构等功能

       如果你不能立马判断出用哪个循环,for是不二的选择

let arr = [
{
    name : 'name1',
    age : 'age1',
    job : 'job1'
},{
    name : 'name2',
    age : 'age2',
    job : 'job2'
},{
    name : 'name3',
    age : 'age3',
    job : 'job3'
}
];
for(let i = 0, i < arr.length,i++){
    //  执行的语句,获取每个内容时,用arr[i].name/age/job即可
    let str = `name:${arr[i].name},age:${arr[i].age},job:${arr[i].job},`
    console.log(str)
}
结果
name:name1,age:age1,job:job1
name:name2,age:age2,job:job2
name:name3,age:age3,job:job3

2 : forEach 循环 该函数用于代替普通的 for 循环,不过不用定义自增变量了,它的回调函数中有三个参数,分别是值,下标,和原数组

例一:直接循环,类似于for,用途也是最广泛的,可以在里边写语句,

let arr1 = ['北京','上海','广州']
arr1.forEach((val,index,arr) => {
    // 执行语句
    console.log(val,index,arr)
})
结果
北京,0,['北京','上海','广州']
上海,1,['北京','上海','广州']
广州,2,['北京','上海','广州']

3 : map 循环  它的回调函数中有三个参数,分别是值,下标,和原数组

  • 适用于需要对数据结构进行重新整理或加工的数组
  • 它与for 和 forEach 循环不同的是,map 配合 return 使用 来返回一个新的数组

例子:比如说要后台传来的数据中包含城市和华氏摄氏度,需要自行计算出摄氏温度并一起展示,那么就可以看以下例子

var arr1 = [
        {
            city : '北京',
            fahrenheit : '65'
        },{
            name : '广州',
            fahrenheit : '78'
        },{
            name : '深圳',
            fahrenheit : '80'
        }]
        let arr2 = arr1.map((val,index,arr) => {
            let newArr = {};
            newArr = [{
                city : val.city, 
                celsiusTemperature : ((val.fahrenheit - 32) / 1.8).toFixed(2),
                fahrenheit:val.fahrenheit}]
            return newArr;
        })
        console.log(arr2);
        结果:
        arr2 = [
        {
            city : '北京',
            celsiusTemperature : '18.33',
            fahrenheit : '65'
        },{
            name : '广州',
            celsiusTemperature : '25.56',            
            fahrenheit : '78'
        },{
            name : '深圳',
            celsiusTemperature : '26.67',
            fahrenheit : '80'
        }]

4 : filter 循环  它用来过滤数据,配合return 使用,只保留数组中符合条件内容;它的回调函数中有三个参数,分别是值,下标,和原数组

例子:取出95及以上分数的同学数据

        let arr = [
        {
            name : '小明',
            score : '86'
        },{
            name : '小红',
            score : '95'
        },{
            name : '小芳',
            score : '95'
        }]
        let arr1 = arr.filter((value, index) => {
            return value.score >= '95';  // 将结果为满足该条件的筛选出来
        });
        console.log(arr1);
        结果
        arr1 = [{
            name : '小红',
            score : '95'
        },{
            name : '小芳',
            score : '95'
        }]

其实这个用map也可以,加个条件判断然后把满足条件的放到一个数组中,不过使用 filter 既方便又高效

4 : some 循环   every 循环  这两个循环用的比较少,可以从名字中看出来,some 是部分,类似 include,every 是全部

平时工作中没有用到过,后期再写

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值