首頁 > web前端 > js教程 > javascript數組去重有哪幾種方式

javascript數組去重有哪幾種方式

青灯夜游
發布: 2021-06-22 16:42:30
原創
1782 人瀏覽過

去重方式:1、用「Array.from(new Set(arr))」語句;2、用「[…new Set(arr)]」語句;3、用「arr.filter( (item,index)=>arr.indexOf(item)===index)”語句。

javascript數組去重有哪幾種方式

本教學操作環境:windows7系統、javascript1.8.5版、Dell G3電腦。

JavaScript 陣列去重的幾種方式

#1、Array.from(new Set(arr))

const arr = [1, 2, 3, 2, 3];

Array.from(new Set(arr)); // [1, 2, 3]
登入後複製

由於Set 中的元素是唯一的,無論是原始值或是物件引用,所以可以透過將陣列轉換成Set 物件來實現去重

Array.from 方法可以將Set 物件轉換成陣列

2、[…new Set(arr)]

const arr = [1, 2, 3, 2, 3];
[...new Set(arr)]; // [1, 2, 3]
登入後複製

這裡是透過ES6 的展開語法將Set 物件轉換成陣列;

#3、arr.filter((item, index) => arr.indexOf(item) == = index)

const arr = [1, 2, 3, 2, 3];

arr.filter((item, index) => arr.indexOf(item) === index); // [1, 2, 3]
登入後複製

indexOf方法傳回指定元素在陣列中的第一個索引(index), 如果沒有則傳回-1

所以這裡的arr 陣列中的每個元素透過indexOf() 方法傳回的索引值分別是0 1 2 1 2

arr.forEach(item => console.log(arr.indexOf(item))); // 0 1 2 1 2
登入後複製

可以透過indexOf 來實現去重,例如arr 中的第四個元素2 透過indexOf 回傳的是索引是1, 但是它目前的index 下標是3,不相等,說明當前的這個2 元素在之前出現過, 所以應該把它過濾掉

【相關推薦:javascript學習教程

#

以上是javascript數組去重有哪幾種方式的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板