千鋒教育JavaScript全套視頻教程(10天學(xué)會(huì)Js,前端javascrip

數(shù)組的去重
方法一:使用Set數(shù)據(jù)結(jié)構(gòu)
可以利用Set數(shù)據(jù)結(jié)構(gòu)的特性來(lái)實(shí)現(xiàn)數(shù)組的去重,Set中存儲(chǔ)的值都是唯一的。
function uniqueBySet(arr) { return [...new Set(arr)]; } const arr = [1, 2, 2, 3, 3, 4, 5, 5]; const uniqueArr = uniqueBySet(arr); console.log(uniqueArr); // [1, 2, 3, 4, 5]
方法二:使用filter方法和indexOf方法
通過(guò)filter方法結(jié)合indexOf方法,可以篩選出數(shù)組中第一次出現(xiàn)的元素,從而實(shí)現(xiàn)數(shù)組的去重。
function uniqueByFilter(arr) { return arr.filter((item, index) => arr.indexOf(item) === index); } const arr = [1, 2, 2, 3, 3, 4, 5, 5]; const uniqueArr = uniqueByFilter(arr); console.log(uniqueArr); // [1, 2, 3, 4, 5]
方法三:使用reduce方法和includes方法
通過(guò)reduce方法結(jié)合includes方法,可以迭代數(shù)組并將不重復(fù)的元素添加到結(jié)果數(shù)組中,從而實(shí)現(xiàn)數(shù)組的去重。
function uniqueByReduce(arr) { return arr.reduce((result, item) => { if (!result.includes(item)) { result.push(item); } return result; }, []); } const arr = [1, 2, 2, 3, 3, 4, 5, 5]; const uniqueArr = uniqueByReduce(arr); console.log(uniqueArr); // [1, 2, 3, 4, 5]
方法四:使用Map數(shù)據(jù)結(jié)構(gòu)
可以利用Map數(shù)據(jù)結(jié)構(gòu)的特性,其中的鍵值對(duì)可以保證鍵的唯一性,從而實(shí)現(xiàn)數(shù)組的去重。
function uniqueByMap(arr) { const resultMap = new Map(); const uniqueArr = []; for (const item of arr) { if (!resultMap.has(item)) { resultMap.set(item, true); uniqueArr.push(item); } } return uniqueArr; } const arr = [1, 2, 2, 3, 3, 4, 5, 5]; const uniqueArr = uniqueByMap(arr); console.log(uniqueArr); // [1, 2, 3, 4, 5]
以上就是幾種常用的數(shù)組去重方法,根據(jù)具體需求選擇合適的方法,可以方便地實(shí)現(xiàn)數(shù)組去重操作。
標(biāo)簽: