方法一:遍歷數(shù)組,建立新數(shù)組扇调,利用indexOf判斷是否存在于新數(shù)組中,不存在則push到新數(shù)組,最后返回新數(shù)組
function?deweight(ar) {
? ? var ret = [];
? ? for (var i = 0, j = ar.length; i < j; i++) {
? ? ? ? if (ret.indexOf(ar[i]) === -1) {
? ? ? ? ? ? ret.push(ar[i]);
? ? ? ? }
? ? }
? ? return ret;
}
方法二:遍歷數(shù)組蟀伸,利用object對象保存數(shù)組值,判斷數(shù)組值是否已經(jīng)保存在object中缅刽,未保存則push到新數(shù)組并用object[arrayItem]=1的方式記錄保存
function deweight(ar) {
? ? var tmp = {},
? ? ? ? ret = [];
? ? for (var i = 0, j = ar.length; i < j; i++) {
? ? ? ? if (!tmp[ar[i]]) {
? ? ? ? ? ? tmp[ar[i]] = 1;
? ? ? ? ? ? ret.push(ar[i]);
? ? ? ? }
? ? }
? ? return ret;
}
方法三:數(shù)組下標判斷法, 遍歷數(shù)組啊掏,利用indexOf判斷元素的值是否與當(dāng)前索引相等,如相等則加入
function deweight(ar) {
? ? var ret = [];
? ? ar.forEach(function(e, i, ar) {
? ? ? ? if (ar.indexOf(e) === i) {
? ? ? ? ? ? ret.push(e);
? ? ? ? }
? ? });
? ? return ret;
}
方法四:數(shù)組先排序衰猛, 然后比較倆數(shù)組一頭一尾進行去重
function deweight(ar) {
? ? var ret = [],
? ? ? ? end;
? ? ar.sort();
? ? end = ar[0];
? ? ret.push(ar[0]);
? ? for (var i = 1; i < ar.length; i++) {
? ? ? ? if (ar[i] != end) {
? ? ? ? ? ? ret.push(ar[i]);
? ? ? ? ? ? end = ar[i];
? ? ? ? }
? ? }
? ? return ret;
}
方法五迟蜜、循環(huán)二次數(shù)組中的值,依次進行比較
function deweight(ar){
for(var i=0;i<ar.length;i++){
? ? for(var j=i+1;j<ar.length;j++){
? ????? if(ar[j]==ar[i]){
? ? ????????ar.splice(j,1)
? ????????? j--
????????}
? ? }
}
方法六啡省,ES6中Set
[...new Set(['1',2,3,4,1,2,12,2])]
如有疑惑娜睛,請ALT髓霞,急時修正。謝謝畦戒!