1.陣列去重
var arr = ["1343", "rere", "1343", "rerd"];array.prototype.unique = function();
for(var i = 0; i < this.length;i++)
} console.log(json);//
return res;
}console.log(arr.unique());//["1343", "rere", "rerd"]
var qcsz = arr.unique().join("、");//可以轉換為字串
console.log(qcsz);//1343、rere、rerd
思路:先建立乙個空陣列,和空物件;迴圈遍歷陣列元素;若是json[this[i] 是 undefined,則 !undefined 為 true,通過 res.push 將元素存到新的陣列裡,並且用json[this[i]] = 1的方法,給json物件增加新的屬性;若是 json[this[i] 不為 undefined,為已賦值的1,則說明元素已存在,則不進入函式體;故可起到函式去重的作用。
array.prototype.unique方法是為 array的原型上,增加乙個unique方法,這樣所有的array都可以去繼承這個方法,其中的this,指向呼叫unique方法的陣列;
判斷依據:console.log(!undefined);//true
console.log(!1);//false
console.log(!-1);//false
物件增加屬性示例:
var obj = {};
console.log(obj);//{}
obj["arr"] = 1;
console.log(obj);//
console.log(obj["arr"]);//1
console.log(obj.arr);//1
以上方法有個bug,若陣列為var arr = [1,34,4,2,5,"1",3,4,"2"] 時,使用該方法去重後,陣列內容將是:[1, 34, 4, 2, 5, 3];
可以使用indexof()方法,實現去重。//indexof() 方法可返回某個指定的字串值在字串中首次出現的位置。
var arr = [1,34,4,2,5,"1",3,4,"2"];var temp = ;
function uniqe(arr),,,
,,];var newarr = ;
var obj={};
//比較陣列內的屬性,並將其新增為obj的物件
for (var i = 0, length = arr.length; i < length; i++)
}console.log(newarr) //這就是去重後的陣列物件
3.去掉陣列中的空值
var newarr = [1,4,"143",,"ste",,123,"",34];function removeempty(arr)
}return arr;
};removeempty(newarr);//[1, 4, "143", "ste", 123, 34]
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中陣列的去重
前言,有一次去面試,面試官問我乙個陣列去重題。有哪些方法可以實現。當時第一反應是hash去重,第乙個想法是自己去實現去重演算法,太弱了 不過在es6中新加的set類就是乙個hash集合的實現,現在我們就用set來實現下去重。首先生成乙個帶有重複元素的陣列 0,1,1,2,2,3,3,4,4,5 va...
JS中陣列去重問題
js中陣列去重問題 我總共想出了三種演算法來實現這個目的 array.prototype.unique1 function return n array.prototype.unique2 function r n為hash表,r為臨時陣列 for var i 0 i this.length i 遍...