//数组去重
//利用splice
function unique1(list) {
var i,j,len=list.length
for(var i=0;i<len;i++){
for(var j = i+1;j<len;j++){
if(list[i] == list[j]){
list.splice(j,1)
len--;
j--;
}
}
}
return list
}
console.log(unique1([1,2,2,2,2,4,3,3,4]))
//双循环去重法
function unique2(list) {
var result = [];
for(var i=0;i<list.length;i++){
for(var j=i+1;j<list.length;j++){
if(list[i]===list[j]){
j= ++i
}
}
result.push(list[i])
}
return result
}
console.log(unique2([1,2,2,2,2,4,3,3,4]))
// 利用对象键值对去重
function unique3(list) {
var result = {};
var r = []
for(var i=0;i<list.length;i++){
if(result.hasOwnProperty(list[i])){
}else{
result[list[i]] = [];
r.push(list[i])
}
}
return r
}
console.log(unique3([1,2,2,2,2,4,3,3,4]))
//sort思想
function unique4(list) {
list.sort(function(a,b){
return a-b
})
for(var i=0;i<list.length;i++){
if(list[i]===list[i+1]){
list.splice(i,1)
i--
}
}
return list
}
console.log(unique4([1,2,2,2,2,4,3,3,4]))
//利用indexOf以及forEach
function unique5(list) {
var result = [];
list.forEach(function(item,index){
if(result.indexOf(item)<0){
result.push(item)
}
})
return result
}
console.log(unique5([1,2,2,2,2,4,3,3,4]))
// 利用Set数据结构
function unique6(list){
return Array.from(new Set(list))
}
console.log(unique6([1,2,2,2,2,4,3,3,4]))
网友评论