js利用數(shù)組巧妙的處理數(shù)據(jù)

描述:存在這樣的json數(shù)組數(shù)據(jù),根據(jù)不同id(id也在json里面)獲取相應的數(shù)據(jù)(數(shù)據(jù)必須存在才獲取),具體看實例

var data = [
    {
        "id": 363,
        "content": "/upload/front/order/itemList/zanCut/2017/04/10/1491815740687.jpg"
    },
    {
        "id": 363,
        "content": ""
    },
    {
        "id": 363,
        "content": ""
    },
    {
        "id": 363,
        "content": "/upload/front/order/itemList/zanCut/2017/04/10/1491811216888.jpg"
    },
    {
        "id": 363,
        "content": "/upload/front/order/itemList/zanCut/2017/04/10/1491811218552.JPG"
    },
    {
        "id": 364,
        "content": "/upload/front/order/itemList/zanCut/2017/04/10/1491811159927.png"
    },
    {
        "id": 364,
        "content": ""
    },
    {
        "id": 364,
        "content": ""
    },
    {
        "id": 364,
        "content": "/upload/front/order/itemList/zanCut/2017/04/10/1491811167815.jpg"
    },
    {
        "id": 364,
        "content": ""
    },
    {
        "id": 365,
        "content": ""
    },
    {
        "id": 365,
        "content": "/upload/front/order/itemList/zanCut/2017/04/10/1491811175762.png"
    },
    {
        "id": 365,
        "content": ""
    },
    {
        "id": 365,
        "content": ""
    },
    {
        "id": 365,
        "content": "/upload/front/order/itemList/zanCut/2017/04/10/1491811179370.jpg"
    },
    {
        "id": 366,
        "content": "/upload/front/order/itemList/zanCut/2017/04/10/1491811185387.jpg"
    },
    {
        "id": 366,
        "content": "/upload/front/order/itemList/zanCut/2017/04/10/1491811187146.jpg"
    },
    {
        "id": 366,
        "content": "/upload/front/order/itemList/zanCut/2017/04/10/1491811188690.JPG"
    },
    {
        "id": 366,
        "content": "/upload/front/order/itemList/zanCut/2017/04/10/1491811197842.JPG"
    },
    {
        "id": 366,
        "content": "/upload/front/order/itemList/zanCut/2017/04/10/1491811199545.png"
    },
    {
        "id": 367,
        "content": "/upload/front/order/itemList/zanCut/2017/04/10/1491811207099.png"
    },
    {
        "id": 367,
        "content": "/upload/front/order/itemList/zanCut/2017/04/10/1491811208608.jpg"
    },
    {
        "id": 367,
        "content": ""
    },
    {
        "id": 367,
        "content": ""
    },
    {
        "id": 367,
        "content": ""
    },
    {
        "id": 368,
        "content": ""
    },
    {
        "id": 368,
        "content": ""
    },
    {
        "id": 368,
        "content": ""
    },
    {
        "id": 368,
        "content": "/upload/front/order/itemList/zanCut/2017/04/10/1491811216888.jpg"
    },
    {
        "id": 368,
        "content": "/upload/front/order/itemList/zanCut/2017/04/10/1491811218552.JPG"
    },
    {
        "id": 369,
        "content": "/upload/front/order/itemList/zanCut/2017/04/10/1491811231985.png"
    },
    {
        "id": 369,
        "content": "/upload/front/order/itemList/zanCut/2017/04/10/1491811230524.jpg"
    },
    {
        "id": 369,
        "content": "/upload/front/order/itemList/zanCut/2017/04/10/1491811228955.jpg"
    },
    {
        "id": 369,
        "content": "/upload/front/order/itemList/zanCut/2017/04/10/1491811227399.jpg"
    },
    {
          "id": 369,
          "content": "/upload/front/order/itemList/zanCut/2017/04/10/1491811225656.JPG"
    },
    {
        "id": 370,
        "content": ""
    },
    {
        "id": 370,
        "content": "/upload/front/order/itemList/zanCut/2017/04/10/1491811238378.jpg"
    },
    {
        "id": 370,
        "content": "/upload/front/order/itemList/zanCut/2017/04/10/1491811240198.png"
    },
    {
        "id": 370,
        "content": ""
    },
    {
        "id": 370,
        "content": ""
    }
];

// 數(shù)組去重
Array.prototype.unique = function () {
    var obj = [],
        arr = [],
        val = '',
        type = '';

    for (var i = 0, len = this.length; i < len; i++) {
        val = this[i];
        type = typeof val;

        // 若不存在obj[val],則val一定會被push進arr
        if (!obj[val]) {
            // 將val的數(shù)據(jù)類型存放到obj[val],處理極端情況會用到
            obj[val] = [type];
            arr.push(val);
        } else if (obj[val].indexOf(type) < 0) {
            // 若obj[val]已存在(鍵值會執(zhí)行toString()轉(zhuǎn)換,可能會得到相同的obj[val],但obj[val]里的type一定是唯一的)
            obj[val].push(type);
            arr.push(val);
        }
    }

    return arr;
}

var idArr      = [],
    idTemp1    = [],
    idTemp2    = [],
    contentArr = [],
    valueObj   = {};

for (var i = 0, len = data.length; i < len; i++) {
    if (data[i].content) {
        // 當且僅當data[i].content有值,才將id push進數(shù)組idArr
        // 以及將id、conetnt push進contentArr
        idArr.push(data[i].id);
        contentArr.push([data[i].id, data[i].content]);
    } else {
        // 若content為空,則push false 到idArr
        idArr.push(false);
    }
}

// 將數(shù)組里面的fasle值過濾掉
idTemp1 = idArr.filter(function (val) {
    if (val !== false) return val;
});

// 去掉重復的id(數(shù)組去重)
idTemp2 = idTemp1.unique();

if (idTemp2.length > 0) {
    idTemp2.forEach(function (val) {
        valueObj[val] = [];

        contentArr.forEach(function (value) {
            if (val === value[0]) {
                valueObj[value[0]].push(value[1]);
            }
        });
    });
}
console.log(valueObj);
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容