javascript - 这种代码如何简化?

查看:82
本文介绍了javascript - 这种代码如何简化?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

如何实现自定义月份范围,并能简化代码,看起来好蛋疼,先不管接口设计

var totalData = [];

var req1 = $.get(url + '&month=4&year=2017');
var req2 = $.get(url + '&month=3&year=2017');
var req3 = $.get(url + '&month=2&year=2017');
var req4 = $.get(url + '&month=1&year=2017');
var req5 = $.get(url + '&month=12&year=2016');
var req6 = $.get(url + '&month=11&year=2016');
var req7 = $.get(url + '&month=10&year=2016');
var req8 = $.get(url + '&month=9&year=2016');
var req9 = $.get(url + '&month=8&year=2016');
var req10 = $.get(url + '&month=7&year=2016');
var req11 = $.get(url + '&month=6&year=2016');
var req12 = $.get(url + '&month=5&year=2016');
$.when(req1, req2, req3, req4, req5, req6, req7, req8, req9, req10, req11, req12)
    .done(function (data1, data2, data3, data4, data5, data6, data7, data8, data9, data10, data11, data12) {
        var d1 = data1[0];
        var d2 = data2[0];
        var d3 = data3[0];
        var d4 = data4[0];
        var d5 = data5[0];
        var d6 = data6[0];
        var d7 = data7[0];
        var d8 = data8[0];
        var d9 = data9[0];
        var d10 = data10[0];
        var d11 = data11[0];
        var d12 = data12[0];
        totalData = d1.concat(d2, d3, d4, d5, d6, d7, d8, d9, d10, d11, d12)
    });

解决方案

ES6是个好东西:

$.when([
    ...Array(4).fill(1).map((n, i) => $.get(`${url}&month=${i + 1}&year=2017`)),
    ...Array(8).fill(1).map((n, i) => $.get(`${url}&month=${i + 5}&year=2016`))
]).done((data) => {
    totalData = [].concat(...data);
});

没有测试,不过大概就是这么个意思,你自己试试看吧。

这篇关于javascript - 这种代码如何简化?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆