日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術(shù)文章
文章詳情頁

JS中6個對象數(shù)組去重的方法

瀏覽:83日期:2022-06-13 13:36:27
目錄前言方法一:使用 .filter() 和 .findIndex() 相結(jié)合的方法方法二:使用 .reduce() 方法方法三:使用 .forEach() 和 .some() 相結(jié)合的方法方法四:使用 Map方法五:Object.create()方法六:For const of 和 find 結(jié)合針對多個屬性進行去重結(jié)束前言

大家好,關(guān)于對象數(shù)組去重的業(yè)務(wù)場景,想必大家都遇到過類似的需求吧,針對這樣的需求,你是怎么做的呢。

下面我就先和大家討論下基于對象的某個屬性如何去重。

方法一:使用 .filter() 和 .findIndex() 相結(jié)合的方法

使用 filter() 方法過濾掉重復(fù)的元素,使用 findIndex() 方法判斷對象是否重復(fù),代碼如下:

const arr = [{id: 1, name: 'a'}, {id: 2, name: 'b'}, {id: 1, name: 'c'}, {id: 3, name: 'd'}];const uniqueArr = arr.filter((item, index) => arr.findIndex(i => i.id === item.id) === index);方法二:使用 .reduce() 方法

使用 reduce() 方法維護一個累加器,通過對象的屬性來判斷是否重復(fù),代碼如下:

const arr = [{id: 1, name: 'a'}, {id: 2, name: 'b'}, {id: 1, name: 'c'}, {id: 3, name: 'd'}];const uniqueArr = arr.reduce((acc, curr) => { if (!acc.find(item => item.id === curr.id)) { acc.push(curr); } return acc;}, []);方法三:使用 .forEach() 和 .some() 相結(jié)合的方法

使用 forEach() 方法遍歷數(shù)組,使用 some() 方法判斷是否重復(fù),代碼如下:

const arr = [{id: 1, name: 'a'}, {id: 2, name: 'b'}, {id: 1, name: 'c'}, {id: 3, name: 'd'}];const uniqueArr = [];arr.forEach(item => { if (!uniqueArr.some(i => i.id === item.id)) { uniqueArr.push(item); }});方法四:使用 Map

使用 Map 結(jié)構(gòu)去重對象數(shù)組時,需要借助 array.map() 函數(shù)將對象數(shù)組進行轉(zhuǎn)換,示例代碼如下:

const arr = [{id: 1, name: 'a'}, {id: 2, name: 'b'}, {id: 1, name: 'c'}, {id: 3, name: 'd'}];const uniqueArr = [...new Map(arr.map(item => [item.id, item])).values()];方法五:Object.create()

使用Object.create(),按照對象的屬性來判斷是否重復(fù),代碼如下

const arr = [{id: 1, name: 'a'}, {id: 2, name: 'b'}, {id: 1, name: 'c'}, {id: 3, name: 'd'}];const uniqueArr = arr.filter(function (item) { return !this[item.id] && (this[item.id] = true);}, Object.create(null));方法六:For const of 和 find 結(jié)合

這個方法的思想與方法3類似 ,其思路結(jié)構(gòu)如下:

創(chuàng)建一個空的唯一數(shù)組來存儲唯一對象。循環(huán)遍歷數(shù)組中的對象。對于每個對象,如果它不是重復(fù)的,則將其添加到唯一數(shù)組。否則,忽略它const arr = [{id: 1, name: 'a'}, {id: 2, name: 'b'}, {id: 1, name: 'c'}, {id: 3, name: 'd'}];const unique = [];for (const item of arr) { const isDuplicate = unique.find((obj) => obj.id === item.id); if (!isDuplicate) { unique.push(item); }}針對多個屬性進行去重

有時候,您可能希望僅當對象具有兩個或多個具有相同值的屬性時才將其視為重復(fù)對象——多個屬性值相同。

對于這種情況,我們可以將上述方法進行稍微調(diào)整就可以進行使用,有部分方法可能不適用,有哪些不合適,這個問題留給大家,歡迎大家在評論區(qū)討論。

我們先使用 .filter() 和 .findIndex() 相結(jié)合的方法嘗試下,看看如何操作:

const arr = [{id: 1, name: 'a'}, {id: 2, name: 'b'}, {id: 1, name: 'a'}, {id: 3, name: 'd'}];const uniqueArr = arr.filter((item, index) => arr.findIndex(i => i.id === item.id&& i.name === item.name) === index);

我們再使用 For const of 和 find 結(jié)合的方法,也能實現(xiàn)同樣的效果

const arr = [{id: 1, name: 'a'}, {id: 2, name: 'b'}, {id: 1, name: 'a'}, {id: 3, name: 'd'}];const unique = [];for (const item of arr) { const isDuplicate = unique.find((obj) => obj.id === item.id && obj.name ==item.name); if (!isDuplicate) { unique.push(item); }}console.log(unique)結(jié)束

其他幾個方法的改造,歡迎大家作為練習進行嘗試,這里就不再一一舉例了,今天的分享就到這里,這些方法都可以實現(xiàn)對象數(shù)組的去重,具體使用哪種方法取決于個人的喜好和項目的需求,如果你有其他的方法,歡迎大家在評論區(qū)補充,感謝你的關(guān)注。

到此這篇關(guān)于JS中6個對象數(shù)組去重的方法的文章就介紹到這了,更多相關(guān)JS對象數(shù)組去重內(nèi)容請搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!

標簽: JavaScript
相關(guān)文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
麻豆久久久久久久| 日本在线高清| 国产精品激情电影| 日韩免费精品| 精品国产乱码久久久| 久久天堂精品| 亚州av日韩av| 欧美日韩中文字幕一区二区三区| 蜜臀久久99精品久久久久久9| 久久97视频| 国产精品一区亚洲| 日韩影院在线观看| 欧美激情另类| 另类综合日韩欧美亚洲| 亚州av日韩av| 日韩国产专区| 国产69精品久久| 国产探花在线精品| 视频在线观看国产精品| 在线国产一区二区| 九九综合九九| 91精品一区二区三区综合| 精品三级在线| 精品一区二区三区的国产在线观看| 久久精品xxxxx| 欧美久久亚洲| 久久国产三级| 国产亚洲一区二区三区啪| 日本成人在线一区| 麻豆视频一区二区| 亚洲综合小说| 伊人www22综合色| 亚洲人妖在线| 日韩国产在线观看| 久久99免费视频| 麻豆91精品视频| 精品黄色一级片| 日韩国产网站| 999国产精品视频| 四虎成人精品一区二区免费网站 | 欧美日韩在线二区| 夜夜精品视频| 在线国产精品一区| 日韩av字幕| 精品精品久久| 欧美日韩国产综合网| 日韩欧美在线精品| 大香伊人久久精品一区二区| 欧美国产小视频| 亚洲欧美久久精品| 欧美色综合网| 国产成人精选| 日本不卡不码高清免费观看| 卡一卡二国产精品| 亚洲乱码视频| 99久久精品国产亚洲精品| 日本久久二区| 女主播福利一区| 国产日韩1区| 不卡中文字幕| 亚洲精品**中文毛片| 免费人成精品欧美精品| 久久爱www.| 日韩激情综合| 国产精品毛片在线| 亚洲国产专区| 蜜桃视频在线网站| 国产一区三区在线播放| 青草久久视频| 午夜在线精品| 伊人久久婷婷| 午夜免费一区| 欧美+日本+国产+在线a∨观看| 91p九色成人| 欧美日韩免费观看一区=区三区 | 欧美成人a交片免费看| 日韩亚洲精品在线观看| 一区二区国产在线| 蜜芽一区二区三区| 免费国产自久久久久三四区久久| 欧美成a人片免费观看久久五月天| 日韩欧美另类中文字幕| 欧美色图一区| 97精品中文字幕| 国产精品亚洲综合色区韩国| 亚洲精品人人| 奇米777国产一区国产二区| 免费在线成人网| 免费成人在线影院| 欧美一区自拍| 欧美激情在线精品一区二区三区| 国产欧美69| 精品日韩视频| 久久中文字幕av| 国产日韩欧美一区二区三区在线观看| 国产伦精品一区二区三区视频 | 亚洲精品亚洲人成在线观看| 日韩国产91| 久久电影tv| 免费看的黄色欧美网站| 最新国产拍偷乱拍精品| 亚洲欧美日韩高清在线| 亚洲精品一区二区妖精| 亚洲一区二区毛片| 蜜桃久久av一区| 国产乱子精品一区二区在线观看 | 久久精品xxxxx| 日韩中文视频| 亚洲深夜福利在线观看| 首页欧美精品中文字幕| 欧美激情99| 国产传媒在线| 在线亚洲精品| 亚洲女同av| 亚洲日本在线观看视频| 国产精品高颜值在线观看| 麻豆亚洲精品| 九九99久久精品在免费线bt| 麻豆成全视频免费观看在线看| 石原莉奈在线亚洲三区| 国产一区二区三区久久久久久久久| 国产精品88久久久久久| 欧美激情精品| 亚洲一区成人| 久久久777| 精品国产18久久久久久二百| 日韩精品水蜜桃| 久久av偷拍| 老色鬼精品视频在线观看播放| 欧美午夜不卡| 亚洲精品2区| 狠狠操综合网| 亚洲福利专区| 久久精品卡一| 亚洲夜间福利| 久久一区二区三区喷水| 91精品啪在线观看国产18| 国产一区二区三区黄网站| 久久国产麻豆精品| 欧美一区二区三区久久精品| 国产日产一区| 日本一区二区三区中文字幕| 91亚洲无吗| 国产日韩在线观看视频| 国产麻豆一区二区三区精品视频| 人人精品人人爱| 91欧美日韩在线| 国产精品日本一区二区不卡视频 | 午夜日本精品| 久久国产小视频| 黄色av一区| 亚洲三级国产| 欧美久久一区二区三区| 国产一区精品福利| 四季av一区二区凹凸精品| 欧美韩一区二区| 国产福利电影在线播放| 黄色亚洲免费| 日本午夜精品视频在线观看| 国产剧情在线观看一区| 精品欧美视频| 亚洲在线电影| 欧美一区不卡| 91精品国产乱码久久久久久久| 蜜臀av国产精品久久久久| 国产精品视频3p| 高清久久精品| 亚洲精品黄色| 群体交乱之放荡娇妻一区二区| 欧美日韩视频网站| 日韩高清二区| 极品裸体白嫩激情啪啪国产精品| 亚洲深夜影院| 久久国产免费看| 最新日韩av| 国产精品99一区二区三| 日本一区二区三区中文字幕| 婷婷成人基地| 国产一区二区三区国产精品| 亚洲精品欧洲| 日韩欧美视频专区| 久久国产免费看| 日韩精品一二三区| 久久精品av| 国产精品99久久免费| 亚洲在线成人| 激情婷婷亚洲| 超碰超碰人人人人精品| 久久精品超碰| 一级成人国产| 自拍自偷一区二区三区| 亚洲女同中文字幕| 中文在线免费视频| 精品国产鲁一鲁****| 久久国产乱子精品免费女| 四虎在线精品| 日本亚洲视频| 亚洲影视一区| 人人爱人人干婷婷丁香亚洲| 久久av一区二区三区|