在使用jquery進(jìn)行開發(fā)過程中,經(jīng)常需要進(jìn)行數(shù)據(jù)去重的操作。一種常見的數(shù)據(jù)格式就是json,如何對json數(shù)據(jù)進(jìn)行去重呢?下面就來介紹一下jquery json去重的方法。
首先,我們需要明確去重的標(biāo)準(zhǔn)是什么。以某個屬性為標(biāo)準(zhǔn)呢還是整個數(shù)據(jù)項都要一致呢?這里以整個數(shù)據(jù)項去重為例,代碼如下:
var data = [{ "name": "Tom", "age": "18", "sex": "male" }, { "name": "Jerry", "age": "20", "sex": "male" }, { "name": "Tom", "age": "18", "sex": "male" }]; var result = []; $.each(data, function(index, item) { var flag = true; $.each(result, function(i, da) { if (JSON.stringify(da) == JSON.stringify(item)) { flag = false; return false; } }); if (flag) { result.push(item); } }); console.log(result);
上述代碼中,我們定義了一個數(shù)據(jù)源數(shù)組data,和一個目標(biāo)數(shù)組result,其中result數(shù)組是用來存放去重后的數(shù)據(jù)的。首先我們使用$.each方法遍歷data數(shù)組,然后內(nèi)部再使用$.each方法遍歷result數(shù)組,判斷當(dāng)前數(shù)據(jù)項是否已經(jīng)存在于result數(shù)組中。如果存在,則不做任何操作,如果不存在則將該數(shù)據(jù)項加入到result數(shù)組中。
需要注意的是,在判斷兩個json數(shù)據(jù)是否相同時,我們使用了JSON.stringify方法將其轉(zhuǎn)換成字符串再進(jìn)行對比,這是因為json數(shù)據(jù)項中屬性的順序可能不一致,無法直接進(jìn)行對比的緣故。
總結(jié),通過上述代碼,我們可以輕松實現(xiàn)jquery json的去重操作。在實踐過程中,可以根據(jù)自己的需要對去重標(biāo)準(zhǔn)進(jìn)行選擇。