摘要:當前元素當前元素的索引可選當前元素所屬的數組對象可選第一次為初始值,之后為上一次累加結果,當前要累加得元素利用為數組中對象去重小明小張小李小孫小周小陳
被問到如何給數組中對象去重,想到set答案肯定錯誤的,這個平時工作中用到的不多,查閱資料,找到給數組中對象去重的方法,利用對象屬性名的唯一性,怪自己當時沒想到。
方法一:
let ary=[ {id: 0, name: "小明"}, {id: 1, name: "小張"}, {id: 2, name: "小李"}, {id: 3, name: "小孫"}, {id: 1, name: "小周"}, {id: 2, name: "小陳"}, ]; var result = []; var obj = {}; ary.forEach((ele,index)=>{ if(!obj[ele.id]){ result.push(ele); obj[ele.id]=true; } }); //console.log(result)
方法二:用數組的reduce()方法(累加器)
redeuce()參數:回調函數,傳遞給函數初始值(可選)
回調函數的參數:
1:初始值, 或者計算結束后的返回值。
2:當前元素
3:當前元素的索引(可選)
4:當前元素所屬的數組對象(可選)
let arys=[1,2,3]; //curs第一次為初始值1,之后為上一次累加結果3, //next當前要累加得元素 var a=arys.reduce((curs,next)=>{ // console.log(next) //1+2 //3+3 return curs+next; }); //console.log(a);//6
利用redeuce()為數組中對象去重
let ary=[ {id: 0, name: "小明"}, {id: 1, name: "小張"}, {id: 2, name: "小李"}, {id: 3, name: "小孫"}, {id: 1, name: "小周"}, {id: 2, name: "小陳"}, ]; let obj = {}; ary=ary.reduce((curs,next)=>{ obj[next.id]?"":obj[next.id]=true&& curs.push(next); return curs; },[]);
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/100901.html
摘要:基本操作數組去重數組去重的方法臨時數組保存其實這里面還沒考慮到數組里面嵌套數組對象的情況把去重后的結果放在一個臨時數組中對原來數組的元素與臨時數組元素比較臨時數組中不存在這個元素的放入臨時數組。 js基本操作-數組去重 數組去重的方法 1. 臨時數組保存(其實這里面還沒考慮到數組里面嵌套數組/對象的情況) 把去重后的結果放在一個臨時數組中, 對原來數組的元素與臨時數組元素比較, 臨時...
摘要:中的數組去重問題,被討論都快爛掉了。,法,根據對象的屬性不存在相同的特點,有點類似方法。同理這四個值都會被認為是一樣的而被去重。 js中的數組去重問題,被討論都快爛掉了。網上也有很多方法,不過都大同小異,復制來復制去的。當然這里不是討論我是不是有什么新方法了,沒有,只是在實踐的時候發現一些問題,值得拿出來說說!去重的思路有幾種 1,第一個與后面所有的比較,發現重復的就刪除掉,再取第二個...
閱讀 3240·2021-10-13 09:39
閱讀 2007·2021-09-27 13:36
閱讀 3068·2021-09-22 16:02
閱讀 2593·2021-09-10 10:51
閱讀 1574·2019-08-29 17:15
閱讀 1528·2019-08-29 16:14
閱讀 3494·2019-08-26 11:55
閱讀 2543·2019-08-26 11:50