方法一
思路:
1.構建一個新的數(shù)組存放結果
2.for循環(huán)原數(shù)組取出每一個元素工三,與結果數(shù)據(jù)做對比
3.若結果數(shù)組沒有該元素,則存放在該數(shù)組中
Array.prototype.unique1=function(){
var res=[];
for (var i =0; i < this.length; i++) {
if(res.indexOf(this[i])==-1){
res.push(this[i])
}
}
return res;
}
var arr = [112, 112, 34, '你好', 112, 112, 34, '你好', 'str', 'str1'];
alert(arr.unique1());
方法二
思路:
1.先將原數(shù)組進行排序
2.檢查原數(shù)組中的第i個元素與結果數(shù)組中的最后一個元素是否相同
3.如果不相同见芹,則將該元素存入結果數(shù)組中
Array.prototype.unique2 = function() {
this.sort(); //先排序
var res = [this[0]];
for (var i = 1; i < this.length; i++) {
if (this[i] !== res[res.length - 1]) {
res.push(this[i]);
}
}
return res;
}
var arr = [112, 112, 34, '你好', 112, 112, 34, '你好', 'str', 'str1'];
alert(arr.unique2());
方法三
思路:
1.創(chuàng)建一個新的數(shù)組存放結果
2.創(chuàng)建一個空對象
3.for循環(huán)時前域,每次取出一個元素與對象進行對比,如果這個元素不重復眠冈,則把它存放到結果數(shù)組中旋膳,同時把這個元素的內(nèi)容作為對象的一個屬性,并賦值為1熊户,存入到第2步建立的對象中
Array.prototype.unique3 = function() {
var res = [];
var json = {};
for (var i = 0; i < this.length; i++) {
if (!json[this[i]]) {
res.push(this[i]);
json[this[i]] = 1;
}
}
return res;
}
var arr = [112, 112, 34, '你好', 112, 112, 34, '你好', 'str', 'str1'];
alert(arr.unique1());