Java數(shù)組的去重
數(shù)組去重的場景
將數(shù)組var arr =[1,1,‘true',‘true',true,true,66,66,false,false,undefined,undefined, null,null, NaN, NaN, 0, 0, ‘a(chǎn)', ‘a(chǎn)',{},{}]中重復的值過濾掉
1、ES6-set
使用ES6中的set是最簡單的去重方法
<script> var arr=[1,2,3,4,1,2,3] //先將數(shù)組轉(zhuǎn)換為set var set=new Set(arr) //再將set轉(zhuǎn)換為數(shù)組 console.log(Array.from(set)) </script>
2、利用Map數(shù)據(jù)結構去重
創(chuàng)建一個空Map數(shù)據(jù)結構,遍歷需要去重的數(shù)組,把數(shù)組的每一個元素作為key存到Map中。由于Map中不會出現(xiàn)相同的key值,所以最終得到的就是去重后的結果
function shuzu(arr) {
let map = new Map();
let array = new Array(); // 數(shù)組用于返回結果
for (let i = 0; i < arr.length; i++) {
if(map .has(arr[i])) { // 如果有該key值
map .set(arr[i], true);
} else {
map .set(arr[i], false); // 如果沒有該key值
array .push(arr[i]);
}
}
return array ;
}
3、 嵌套循環(huán)+splice
function shuzu(arr){
for(var i = 0 ; i < arr.length; i++){
for( var j = i + 1; j < arr.length; j++){
if( arr[i] === arr[j] ){
arr.splice(j,1);
}
}
}
return arr;
}
4、 forEach + indexOf
function shuzu(arr){
var res = [];
arr.forEach((val,index)=>{
if( res.indexOf(val) === -1 ){
res.push(val);
}
});
return res;
}
總結
本篇文章就到這里了,希望能夠給你帶來幫助,也希望您能夠多多關注腳本之家的更多內(nèi)容!
相關文章
如何解決Maven出現(xiàn)Could not find artifact的問題
這篇文章主要介紹了如何解決Maven出現(xiàn)Could not find artifact的問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-04-04
小程序與后端Java接口交互實現(xiàn)HelloWorld入門
本文主要介紹了小程序與后端Java接口交互實現(xiàn)HelloWorld入門 ,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2021-07-07
SpringBoot2底層注解@Configuration配置類詳解
這篇文章主要為大家介紹了SpringBoot2底層注解@Configuration配置類詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-05-05
SpringBoot yml配置文件調(diào)用過程解析
這篇文章主要介紹了SpringBoot yml配置文件調(diào)用過程解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2019-11-11
SpringBoot整合RabbitMQ實現(xiàn)RPC遠程調(diào)用功能
在分布式系統(tǒng)中,RPC(Remote?Procedure?Call)是一種常用的通信機制,它可以讓不同的節(jié)點之間像調(diào)用本地函數(shù)一樣進行函數(shù)調(diào)用,隱藏了底層的網(wǎng)絡通信細節(jié),通過本教程,你可以了解RPC的基本原理以及如何使用Java實現(xiàn)一個簡單的RPC客戶端和服務端2023-06-06

