javascript 數組去重,javascript數組
//去除數字元素數組function sortnum(a, b) {return a - b;}Array.prototype.unique1 = function() {this.sort(sortnum);var newnumbers = [this[0]];for (var i = 0; i < this.length; i++) {if (this[i] != newnumbers[newnumbers.length - 1]) {newnumbers.push(this[i]);}};return newnumbers;};var mynums = [1, 2, 5, 8, 2, 5, 7, 42, 8, 0];mynums = mynums.unique1();console.log(mynums);//利用json對象 可以取出非數字元素Array.prototype.jsonUnique = function() {var json = {};for (var i = 0; i < this.length; i++) {if(!json[this[i]]){json[this[i]] = 1;}};return json;};var mynumss = [1,2,54,1,43,54,'哈哈','哈哈','我們','為什麼','為什麼'];mynumss = mynumss.jsonUnique();for(var key in mynumss){console.log(key);}
javascript數組去重不理解
arr是要去重的數組,ret是去重後得到的新數組,hash相當於一個Map,用來記錄某個元素在ret中是否已經存在了。
程式遍曆arr,以每個元素的類型+這個元素作為Map的key,如果hash中已經有這個key了,那麼就不把該元素加到ret中,如果沒有那就加到ret中,同時把這個新key加到hash中。
if (hash[key] !== 1)實際上就是判斷當前元素是否出現過
javascript 數組去重,要對無論多複雜的數組都有效,寫上詳細注釋,答案滿意的再加50分
JS的對象Object的屬性本身就具有唯一性。利用好就行。
所列資料中country的多行輸入只有一行是有效。
而city中的唯一性不明,需要另外對待,但可以以name處理,也可以以value處理,
需要指定一個。就是給出你理想的處理後結果作為範例,好進一步實現。