總結了幾個簡單的陣列去重,和統計重複資料的方法
用兩個for迴圈進行比較,如果陣列中存在相同的屬性,那麼刪掉後出現的重複屬性,因為在js中如果用delete刪除的僅僅是屬性值,並沒有將這個屬性全部刪除,其標籤還在,其值變為empty(undefine),故需要再加入乙個判斷。
var arr = [2,4,1,2,4,5,9,9,5,9,5];
var ary=;
for(let i=0;iindexof() 方法可返回某個指定的字串值在字串中首次出現的位置。在js中用arr.indexof(a),其作用為,進行判斷a是否是陣列arr中的屬性,如果不是返回-1,如果是就返回該屬性的位置(該屬性的key)
整個例子
var arr = ["a","b","c","a","d","c","e","d","c","a","c"];
var ary=;
for(let i=0;i這個比較簡單,直接上**。
var a = [1,1,2,3,4,5,5,6];
var newarr = ;
var o = {}; //
for (let i = 0; i < a.length; i++) else
}
先用sort()方法將陣列中的數進行排序,然後用for迴圈去重並統計。**如下
var arr = [2,4,1,2,4,5,9];
var ary=;
arr.sort(); //排個序
for (var i = 0; i < arr.length;)
}
ary.push([arr[i], count]);
i += count;
} var are = ;
for (var i = 0; i < ary.length; i++)
**看著簡單但實際上在執行時並沒有那麼的高效,比兩個for迴圈強一點,上**
var arr = ["a","b","c","a","d","c","e","d","c","a","c"];
function f(arr)
arr.foreach(function(v,k)else
})
return ary;
}
結果如下js中的in方法,a in ary:判斷a是否存在陣列(或者物件)中,需要注意的是這裡的a為鍵而不是屬性的值不多bb直接上**
var arr = ["a","b","c","a","d","c","e","d","c","a","c"];
var ary={};
for(let i=0;i結果如下
js中的hasownproperty方法,用法 obj.hasownproperty(t):判斷t是否在obj中,這裡的t為鍵,而不是屬性值**如下
var a = [1,1,2,3,4,5,5,6];
function f(a) ;
for (let i = 0; i < a.length; i++) else
}return obj;
}
可以將陣列去重並統計的方法寫到陣列的原型物件上,然後呼叫這個方法
array.prototype.count=function(),
i=0,
t,len =this.length;
for(i=0;i但須要注意的是這個只適用於陣列物件,如果建立的是object物件,那麼就不會找到這個方法。因為這個方法是寫到了陣列(array)構造器的原型物件上了
js中陣列去重
js中的陣列去重 1.建立乙個新陣列,把陣列中的每乙個元素插入到新陣列中 2.遍歷原陣列中每乙個元素分別和新陣列中的每乙個元素進行比較 第一種去重方法 原陣列 var arr 1 2,5 41,1 2,1 4,5 8,10 新陣列 var t t 0 arr 0 arr中的每乙個元素 for var...
JS陣列去重,物件去重
例項1根據indexof去重,indexof的好處就是返回的是首次出現的位置,這樣後面即使出現的值一樣,也只能返回第一次出現的索引,當然這個只適用於簡單的陣列 物件陣列去重 const objarr const obj const newobjarr for let i 0 i objarr.len...
JS中陣列去重問題
js中陣列去重問題 我總共想出了三種演算法來實現這個目的 array.prototype.unique1 function return n array.prototype.unique2 function r n為hash表,r為臨時陣列 for var i 0 i this.length i 遍...