發現一件事,一個徹底由對象組成的數組,用$.unique()方法去掉重複的時候無論用api
1 var arr = [{text:'第一個',value:'1'},{text:'第二個',value:'2'},{text:'第三個',value:'3'},{text:'第一個',value:'1'},{text:'第二個',value:'2'},{text:'第三個',value:'3'}]
假設用 arr = $.unique(arr),這種方法處理一下,去掉重複的對象,結果返回的仍是arr 原來的模樣,長度位6,並無去掉重複啊。數組
百思不得其解,查好長時間api纔看明白spa
原來, 此功能只適用於普通的JavaScript DOM元素的數組,主要是jQuery內部使用。code
說白了,只能遍歷基本的數據類型吧,識別object仍是有難度的。對象
那沒辦法咯,只能給他們每個對象變成字符串,而後去掉重複,而後再給每個字符串轉成對象啦,最後拼成對象。blog
具體的代碼以下:ip
var arr = [{text:'第一個',value:'1'},{text:'第二個',value:'2'},{text:'第三個',value:'3'},{text:'第一個',value:'1'},{text:'第二個',value:'2'},{text:'第三個',value:'3'}]; //arr = $.unique(arr);// 首先用 $.unique() 方法去掉重複一遍,然而並沒什麼卵用 console.log(arr);//看一下原來的數組 var arrResult = []; for(var i=0;i<arr.length;i++){ arr[i] = JSON.stringify(arr[i]);//對象轉成字符串的方法 arrResult.push(arr[i]);//從新填裝成一個《字符串》組成的數組 } arr = [];//清空原來的數據 arrResult = $.unique(arrResult); // 去掉重複的字符串 for(var j=0;j<arrResult.length;j++){ arrResult[j] = JSON.parse(arrResult[j]);// 從新給字符串轉換成對象 arr.push(arrResult[j]);//從新填裝成一個《對象》組成的數組 } console.log(arr);//看一下組裝後的數組
最後的結果:字符串
成功啦,成功嘍!!!!string