欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

JS一級(jí)數(shù)組和數(shù)組對(duì)象合并去重方法實(shí)例

 更新時(shí)間:2023年12月08日 09:44:33   作者:大不了從頭再來(lái)  
這篇文章主要為大家介紹了JS一級(jí)數(shù)組和數(shù)組對(duì)象合并去重方法實(shí)例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

一級(jí)數(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 // 返回當(dāng)前元素在原始數(shù)組的索引值 == 當(dāng)前索引值的元素
 })
}
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ù)組對(duì)象

方法一 使用擴(kuò)展運(yùn)算符(...), 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: '小王'}]

方法二 使用擴(kuò)展運(yùn)算符(...), filter 和對(duì)象字面量 {}

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一級(jí)數(shù)組和數(shù)組對(duì)象合并去重方法實(shí)例的詳細(xì)內(nèi)容,更多關(guān)于JS一級(jí)數(shù)組數(shù)組對(duì)象合并去重的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

最新評(píng)論