const list1 =[1
,2,3
,7,11
,56,3
,2,4
,5];
const list2 =
newset
(list1)
;console.
log(list2)
;//由結果可知,返回了乙個可迭代的set物件,此時還需要把set物件轉為陣列。此時可以用到array.from()。
//**array.from()** 方法從乙個類似陣列或可迭代物件建立乙個新的,淺拷貝的陣列例項.
const list3 = array.
from
(new
set(
[null
,null
, undefined,
12, undefined,7,
2,1,
22,2,
functiona(
),functiona(
),,]
));//這種方式不考慮相容性,且去不掉重複的function和{}
var arr=
;var arr1=array.
from
(new
set(arr));
//簡化
var arr2=
[...
newset
(arr)
];
const list3 =
[null
,null
, undefined, undefined,,,
functionq(
),functionq(
),34,
2,1,
2];for
(let i =
0; i < list3.length; i++)}
}//返回的結果也沒有把function和物件給去掉。
//注:array.indexof(item,statt) 返回陣列中某個指定的元素的位置,沒有則返回-1
var arr =[1
,-5,
-4,0
,-4,
7,7,
3];function
unique
(arr)
}return arr1;
}console.
log(
unique
(arr));
// 1, -5, -4, 0, 7, 3
//注:array.sort( function ) 引數必須是函式,可選,預設公升序
var arr =[5
,7,1
,8,1
,8,3
,4,9
,7];
function
unique
( arr )
}return arr1;
}console.
log(
unique
(arr)
)l;// 1, 1, 3, 4, 5, 7, 7, 8, 8, 9
注:用陣列項作為物件的屬性會自動去除相同的值
var arr =[1
,3,8
,9,3
,5,4
,4,6
,6,2
];function
unique
(arr)
;for
(var i =
0,len=arr.length;i)else
}return arr1;
} console.
log(
unique
(arr));
// 1, 3, 8, 9, 5, 4, 6, 2
//注:arr.includes(指定元素(必填),指定索引值(可選,預設值為0) ),有值返回true,沒有則返回false
var arr =[-
1,0,
8,-3
,-1,
5,5,
7];function
unique
( arr )
}return arr1;
} console.
log(
unique
(arr));
// -1, 0, 8, -3, 5, 7
//注:filter() 方法建立乙個新的陣列,新陣列中的元素是通過檢查指定陣列中符合條件的所有元素
var arr =[1
,2,8
,9,5
,8,4
,0,4
];/* 模擬: 原始陣列:[1,2,8,9,5,8,4,0,4]
索引值:0,1,2,3,4,5,6,7,8
偽新陣列:[1,2,8,9,5,8,4,0,4]
使用indexof方法找到陣列中的元素在元素在中第一次出現的索引值
索引值:0,1,2,3,4,2,6,7,6
返回前後索引值相同的元素:
新陣列:[1,2,8,9,5,4,0]
*/function
unique
( arr ));
} console.
log(
unique
(arr));
// 1, 2, 8, 9, 5, 4, 0
var arr =[1
,1,5
,6,0
,9,3
,0,6
]function
unique
( arr )
)function
loop
(index)
loop
(index -1)
;// 遞迴loop,然後陣列去重}}
loop
(len-1)
;return arr1
}console.
log(
unique
(arr));
// 0, 1, 3, 5, 6, 9
/*
建立乙個空map資料結構,遍歷需要去重的陣列,把陣列的每乙個元素作為key存到map中。由於map中不會出現相同的key值,所以最終得到的就是去重後的結果。
*/let arr =[1
,0,8
,3,-
9,1,
0,-9
,7]function
unique
(arr)
else
}return arr1;
}console.
log(
unique
(arr));
// 1, 0, 8, 3, -9, 7
function
unique
(arr)
function
unique
(arr)
//統計乙個陣列中有多少個不重複的單詞:
// 不用reduce時:
var arr =[,
"orange",,
"orange"
,"pear"
,"orange"];
function
getwordcnt()
;for
(var i=
0, l = arr.length; i< l; i++
)return obj;
} console.
log(
getwordcnt()
);// 用reduce時:
var arr =[,
"orange",,
"orange"
,"pear"
,"orange"];
function
getwordcnt()
,);}
console.
log(
getwordcnt()
);
JS陣列去重,物件去重
例項1根據indexof去重,indexof的好處就是返回的是首次出現的位置,這樣後面即使出現的值一樣,也只能返回第一次出現的索引,當然這個只適用於簡單的陣列 物件陣列去重 const objarr const obj const newobjarr for let i 0 i objarr.len...
js 陣列去重
function unique arr if isrepeated return result 建立乙個新的陣列,迴圈原有的陣列,每取乙個數就迴圈判斷新建的陣列中是否有和這個相等的值,沒有則插入。方法簡單,但是有雙重迴圈,陣列大了之後效率低。所以能一次迴圈解決最好。var str new array...
JS 陣列去重
我總共想出了三種演算法來實現這個目的 array.prototype.unique1 function return n array.prototype.unique2 function r n為hash表,r為臨時陣列 for var i 0 i this.length i 遍歷當前陣列 retu...