JS中陣列去重並統計個數

2021-10-08 09:45:56 字數 1870 閱讀 8697

總結了幾個簡單的陣列去重,和統計重複資料的方法

用兩個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 遍...