您的位置:首页 > Web前端 > JavaScript

js将一组为包含重复和无序日期的数组转化为按正常日期顺序排列的一组数组

2016-01-04 17:23 696 查看
//去除数组里重复的数据

function uniqueArray(data) {

    data = data || [];

    var a = {};

    for (var i = 0; i < data.length; i++) {

        var v = data[i];

        if (typeof (a[v]) == 'undefined') {

            a[v] = 1;

        }

    };

    data.length = 0;

    for (var i in a) {

        data[data.length] = i;

    }

    sortDate(data);

    return data;

};

//日期排序,冒泡排序

function sortDate(dateList) {

    for (var i = 0; i < dateList.length; i++) {

        for (var j = 0; j < dateList.length - i; j++) {//循环一次将最大的日期放到数组最后,第二次循环只需循环dateList.length-1次

            if (new Date(dateList[j]) > new Date(dateList[j + 1])) {//将最大的日期排到最后

                var temp = dateList[j + 1];

                dateList[j + 1] = dateList[j];

                dateList[j] = temp;

            };

        };

    };

    return dateList;
};

//计算两个日期格式为yyyy-MM-dd之间所有的日期,包含起止日期

function show(value1, value2) {//value1,value2格式为yyyy-MM-dd的字符串

    var getDate = function (str) {

        var tempDate = new Date();

        var list = str.split("-");

        tempDate.setFullYear(list[0]);

        tempDate.setMonth(list[1] - 1);

        tempDate.setDate(list[2]);

        return tempDate;

    }

    var date1 = getDate(value1);

    var date2 = getDate(value2);

    if (date1 > date2) {

        var tempDate = date1;

        date1 = date2;

        date2 = tempDate;

    }

    date1.setDate(date1.getDate());

    date2.setDate(date2.getDate() + 1);

    while (!(date1.getFullYear() == date2.getFullYear() && date1.getMonth() == date2.getMonth() && date1.getDate() == date2.getDate())) {

        document.write(date1.getFullYear() + "-" + (date1.getMonth() + 1) + "-" + date1.getDate());

        date1.setDate(date1.getDate() + 1);

    };

};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  函数