[JS] 연관 배열

$(function(){
    /*m_group dom에서 값 가져오기*/
    var m_group_en_arr = new Array();
    var m_group_kr_arr = new Array();

    $(".m_group").each(function(key, val){
        var m_group_val_en = $(val).attr("val_en");
        var m_group_val_kr = $(val).attr("val_kr");
        m_group_en_arr[key] = m_group_val_en;
        m_group_kr_arr[key] = m_group_val_kr;
    });

    var remove_dup_m_group_en_arr = [];
    var remove_dup_m_group_kr_arr = [];
    remove_dup_m_group_en_arr = remove_dup_arr(m_group_en_arr);
    remove_dup_m_group_kr_arr = remove_dup_arr(m_group_kr_arr);

    /*low_yn dom에서 값 가져오기*/
    var low_yn_en_arr = [];
    var low_yn_kr_arr = [];
    $(".low_yn").each(function(key, val){
        var low_yn_id = $(val).attr("id");
        var low_yn_en = $(val).attr("val_en");
        //var low_yn_kr = $(val).attr("val_kr");
        var low_yn_kr = $(val).text();
        low_yn_en_arr[key] = low_yn_en;
        low_yn_kr_arr[key] = low_yn_kr.replace(/[()]/gim,"");
    });
    var remove_dup_low_yn_en_arr = [];
    var remove_dup_low_yn_kr_arr = [];
    remove_dup_low_yn_en_arr = remove_dup_arr(low_yn_en_arr);
    remove_dup_low_yn_kr_arr = remove_dup_arr(low_yn_kr_arr);

    /*#####################################################*/
    var arr = {
        list:[],
        total:[]
    };

    //리스트 생성을 위해 배열 만들기.
    $.each(remove_dup_low_yn_en_arr, function(low_yn_key, low_yn_val){
        arr['list'][low_yn_val] = [];
        $.each(remove_dup_m_group_en_arr, function(m_group_key, m_group_val){
            var cnt = $("#cnt_"+low_yn_val+"_"+m_group_val).text()?parseInt($("#cnt_"+low_yn_val+"_"+m_group_val).text()):0;
            arr['list'][low_yn_val][m_group_val] = cnt;
        });
    });

    //총원을 구허기 위한 코드.
    $.each(remove_dup_m_group_en_arr, function(m_group_key, m_group_val){
        arr['total'][m_group_val] = [];
        var total = 0;
        $.each(remove_dup_low_yn_en_arr, function(low_yn_key, low_yn_val){
            var cnt = $("#cnt_"+low_yn_val+"_"+m_group_val).text()?parseInt($("#cnt_"+low_yn_val+"_"+m_group_val).text()):0;
            total+= cnt;
            arr['total'][m_group_val] = total;
        });
    });

    //S:리스트 최상단
    var m_group_html = "<tr>";
        m_group_html+= "<th>구분</th>";
    $(remove_dup_m_group_kr_arr).each(function(key,val){
        var m_group_kr = val;
        var m_group_en = remove_dup_m_group_en_arr[key];
        m_group_html+= "<th>"+m_group_kr+"</th>";
    });
    m_group_html+= "</tr>";
    $("#stats_tbl thead").html(m_group_html);
    //E:리스트 최상단.

    //S:리스트 내용.
    var list = arr.list;
    var total = arr.total;

    var m_group_html = "";
    //console.log(remove_dup_low_yn_kr_arr);
    var i = 0;
    for (var low_yn_en in list) {
        m_group_html+= "<tr>";
        //m_group_html+= "<td>"+low_yn_en+"</td>";
        m_group_html+= "<td>"+remove_dup_low_yn_kr_arr[i]+"</td>";
        for (var m_group_en in list[low_yn_en]) {
            m_group_html+= "<td>"+list[low_yn_en][m_group_en]+"</td>";
        }
        m_group_html+= "</tr>";
        i++;
    }
    m_group_html+= "<tr>";
    m_group_html+= "<td style='font-weight:bold;'>총원</td>";
    for (var m_group_en in total) {
        m_group_html+= "<td id='total_"+m_group_en+"' style='font-weight:bold;'>"+total[m_group_en]+"</td>";
    }
    m_group_html+= "</tr>";

    $("#stats_tbl tbody").html(m_group_html);
    //E:리스트 내용.
    /*#####################################################*/
});
function remove_dup_arr(arr){ //배열 값 중복 제거.
    var new_arr = [];
    $.each(arr,function(i,value){
        if(new_arr.indexOf(value) == -1 ) new_arr.push(value);
    });
    return new_arr;
}

 

guest
0 Comments
Inline Feedbacks
View all comments