国产一区二区精品-国产一区二区精品久-国产一区二区精品久久-国产一区二区精品久久91-免费毛片播放-免费毛片基地

千鋒教育-做有情懷、有良心、有品質的職業(yè)教育機構

手機站
千鋒教育

千鋒學習站 | 隨時隨地免費學

千鋒教育

掃一掃進入千鋒手機站

領取全套視頻
千鋒教育

關注千鋒學習站小程序
隨時隨地免費學習課程

當前位置:首頁  >  技術干貨  > 數(shù)組中對象去重怎么操作

數(shù)組中對象去重怎么操作

來源:千鋒教育
發(fā)布人:xqq
時間: 2023-08-09 18:21:00 1691576460

數(shù)組中對象去重可以通過以下幾種方式進行操作:

1. 使用Set數(shù)據(jù)結構:Set是ES6中新增的數(shù)據(jù)結構,它類似于數(shù)組,但是成員的值都是唯一的,沒有重復的值。我們可以利用Set的特性來實現(xiàn)數(shù)組中對象的去重。具體操作如下:

const arr = [{id: 1, name: 'Alice'}, {id: 2, name: 'Bob'}, {id: 1, name: 'Alice'}];

const uniqueArr = Array.from(new Set(arr.map(JSON.stringify))).map(JSON.parse);

console.log(uniqueArr);

上述代碼中,我們首先使用map方法將數(shù)組中的每個對象轉換為字符串,然后利用Set的特性去除重復的字符串,再通過Array.from方法將Set轉換回數(shù)組,最后使用map方法將字符串轉換為對象,從而得到去重后的數(shù)組。

2. 使用reduce方法:reduce方法可以用來迭代數(shù)組并將每個元素合并為一個值。我們可以利用reduce方法來遍歷數(shù)組,并使用一個空數(shù)組作為初始值,將每個對象添加到結果數(shù)組中,但在添加之前先判斷是否已經(jīng)存在相同的對象。具體操作如下:

const arr = [{id: 1, name: 'Alice'}, {id: 2, name: 'Bob'}, {id: 1, name: 'Alice'}];

const uniqueArr = arr.reduce((result, obj) => {

if (!result.some(item => item.id === obj.id && item.name === obj.name)) {

result.push(obj);

}

return result;

}, []);

console.log(uniqueArr);

上述代碼中,我們使用reduce方法遍歷數(shù)組,并使用some方法判斷結果數(shù)組中是否已經(jīng)存在相同的對象。如果不存在,則將當前對象添加到結果數(shù)組中。

3. 使用lodash庫:如果你使用lodash庫,可以使用其中的uniqBy方法來實現(xiàn)數(shù)組中對象的去重。具體操作如下:

const _ = require('lodash');

const arr = [{id: 1, name: 'Alice'}, {id: 2, name: 'Bob'}, {id: 1, name: 'Alice'}];

const uniqueArr = _.uniqBy(arr, obj => JSON.stringify(obj));

console.log(uniqueArr);

上述代碼中,我們使用uniqBy方法傳入一個回調函數(shù),該回調函數(shù)將每個對象轉換為字符串,然后利用lodash庫的去重功能得到去重后的數(shù)組。

數(shù)組中對象的去重可以通過使用Set數(shù)據(jù)結構、reduce方法或者lodash庫中的方法來實現(xiàn)。根據(jù)具體的需求和使用場景選擇合適的方法即可。

千鋒教育擁有多年IT培訓服務經(jīng)驗,開設Java培訓web前端培訓大數(shù)據(jù)培訓python培訓軟件測試培訓等課程,采用全程面授高品質、高體驗教學模式,擁有國內一體化教學管理及學員服務,想獲取更多IT技術干貨請關注千鋒教育IT培訓機構官網(wǎng)。

聲明:本站稿件版權均屬千鋒教育所有,未經(jīng)許可不得擅自轉載。
10年以上業(yè)內強師集結,手把手帶你蛻變精英
請您保持通訊暢通,專屬學習老師24小時內將與您1V1溝通
免費領取
今日已有369人領取成功
劉同學 138****2860 剛剛成功領取
王同學 131****2015 剛剛成功領取
張同學 133****4652 剛剛成功領取
李同學 135****8607 剛剛成功領取
楊同學 132****5667 剛剛成功領取
岳同學 134****6652 剛剛成功領取
梁同學 157****2950 剛剛成功領取
劉同學 189****1015 剛剛成功領取
張同學 155****4678 剛剛成功領取
鄒同學 139****2907 剛剛成功領取
董同學 138****2867 剛剛成功領取
周同學 136****3602 剛剛成功領取
相關推薦HOT