JS一級數(shù)組和數(shù)組對象合并去重方法實例
更新時間:2023年12月08日 09:44:33 作者:大不了從頭再來
這篇文章主要為大家介紹了JS一級數(shù)組和數(shù)組對象合并去重方法實例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
一級數(shù)組
方法一 使用 es6 的 Set 和 Array.from 方法
let arr1 = [1, 2, 3, 4, 5, 6, 2, 3] let arr2 = [1, 2, 3, 4, 5, 6, 5, 6] let result = Array.from(new Set([...arr1, ...arr2])) console.log(result) // [1, 2, 3, 4, 5, 6]
方法二 使用 indexOf 方法
let arr1 = [1, 2, 3, 4, 5, 6, 2, 3]
let arr2 = [1, 2, 3, 4, 5, 6, 5, 6]
let arr3 = arr1.concat(arr2)
function uniqueFun(arr) {
const newArr = []
for (let i = 0; i < arr.length; i++) {
if (newArr.indexOf(arr[i]) == -1) {
newArr.push(arr[i])
}
}
return newArr
}
console.log(uniqueFun(arr3)) // [1, 2, 3, 4, 5, 6]方法三 使用 includes 方法
let arr1 = [1, 2, 3, 4, 5, 6, 2, 3]
let arr2 = [1, 2, 3, 4, 5, 6, 5, 6]
let arr3 = arr1.concat(arr2)
function uniqueFun(arr) {
const newArr = []
for (let i = 0; i < arr.length; i++) {
if (!newArr.includes(arr[i])) {
newArr.push(arr[i])
}
}
return newArr
}
console.log(uniqueFun(arr3)) // [1, 2, 3, 4, 5, 6]方法四 使用 filter 方法
let arr1 = [1, 2, 3, 4, 5, 6, 2, 3]
let arr2 = [1, 2, 3, 4, 5, 6, 5, 6]
let arr3 = arr1.concat(arr2) // [1, 2, 3, 4, 5, 6, 2, 3, 1, 2, 3, 4, 5, 6, 5, 6]
function uniqueFun(arr) {
return arr.filter((item, index, arr) => {
return arr.indexOf(item) == index // 返回當前元素在原始數(shù)組的索引值 == 當前索引值的元素
})
}
conosle.log(uniqueFun(arr3)) // [1, 2, 3, 4, 5, 6]方法五 使用 es6 Map
let arr1 = [1, 2, 3, 4, 5, 6, 2, 3]
let arr2 = [1, 2, 3, 4, 5, 6, 5, 6]
let arr3 = arr1.concat(arr2)
function uniqueFun(arr) {
let map = new Map()
return arr.filter(item => {
return !map.has(item) && map.set(item, 1)
})
}
console.log(uniqueFun(arr3)) // [1, 2, 3, 4, 5, 6]數(shù)組對象
方法一 使用擴展運算符(...), filter 和 Map
let arr1 = [{id: 1, name: '小明'}, {id: 2, name: '小紅'}, {id: 4, name: '小劉'}]
let arr2 = [{id: 1, name: '小明'}, {id: 2, name: '小紅'}, {id: 3, name: '小王'}]
let arr3 = [...arr1, ...arr2]
function uniqueFun(arr) {
const map = new Map()
return arr.filter(item => {
return !map.has(item.id) && map.set(item.id, 1)
})
}
console.log(uniqueFun(arr3)) // 輸出 [{id: 1, name: '小明}, {id: 2, name: '小紅'}, {id: 4, name: '小劉'}, {id: 3, name: '小王'}]方法二 使用擴展運算符(...), filter 和對象字面量 {}
let arr1 = [{id: 1, name: '小明'}, {id: 2, name: '小紅'}, {id: 4, name: '小劉'}]
let arr2 = [{id: 1, name: '小明'}, {id: 2, name: '小紅'}, {id: 3, name: '小王'}]
let arr3 = [...arr1, ...arr2]
function uniqueFun(arr) {
const obj = {}
return arr.filter(item => {
return !obj.hasOwnProperty(item.id) && (obj[item.id] = 1)
})
}
console.log(uniqueFun(arr3)) // 輸出 [{id: 1, name: '小明}, {id: 2, name: '小紅'}, {id: 4, name: '小劉'}, {id: 3, name: '小王'}]方法三 使用concat, reduce 和 find
let arr1 = [{id: 1, name: '小明'}, {id: 2, name: '小紅'}, {id: 4, name: '小劉'}]
let arr2 = [{id: 1, name: '小明'}, {id: 2, name: '小紅'}, {id: 3, name: '小王'}]
let arr3 = arr1.concat(arr2)
function uniqueFun(arr) {
return arr.reduce((pre, cur) => {
if (!pre.find(item => item.id === cur.id)) {
pre.push(cur)
}
return pre
}, [])
}
console.log(uniqueFun(arr3)) // 輸出 [{id: 1, name: '小明}, {id: 2, name: '小紅'}, {id: 4, name: '小劉'}, {id: 3, name: '小王'}]以上就是JS一級數(shù)組和數(shù)組對象合并去重方法實例的詳細內容,更多關于JS一級數(shù)組數(shù)組對象合并去重的資料請關注腳本之家其它相關文章!
相關文章
javascript簡單實現(xiàn)表格行間隔顯示顏色并高亮顯示
表格行間隔顯示顏色并實現(xiàn)高亮顯示,這種效果大家都有見到過吧,下面就為大家詳細介紹下,需要的朋友可不要錯過2013-11-11
javascript?變量聲明?var,let,const?的區(qū)別
這篇文章主要介紹了javascript?變量聲明?var,let,const?的區(qū)別,變量聲明,每種編程語言必不可少的語法,在javascript中,變量的聲明相對其他語言來說,算是比較簡單的。更多相關的具體內容需要的小伙伴可以參考一下2022-06-06
layui實現(xiàn)form表單同時提交數(shù)據和文件的代碼
今天小編就為大家分享一篇layui實現(xiàn)form表單同時提交數(shù)據和文件的代碼,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-10-10

