亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

返回不重復的數組值

返回不重復的數組值

慕碼人8056858 2021-11-18 20:55:26
var arr = [      {name:"Grace", age: "28"},      {name:"Peter", age: "15"},      {name:"Grace", age: "28"},      {name:"John", age: "16"},      {name:"Prince", age: "19"},      {name:"John", age: "16"}    ]; 我現在只想返回那些獨特的如下var new = [  {name:"Peter", age: "15"},  {name:"Prince", age: "19"},];
查看完整描述

1 回答

?
ABOUTYOU

TA貢獻1812條經驗 獲得超5個贊

您可以使用Map和reduce


首先創建一個mapper基于name并計算每個名稱的重復次數

只選擇重復正好的值 1

const arr = [{name:"Grace", age: "28"},{name:"Peter", age: "15"},{name:"Grace", age: "28"},{name:"John", age: "16"},{name:"Prince", age: "19"},{name:"John", age: "16"}]; 


let mapper = arr.reduce( (op,inp) => {

  let {name:key} = inp

  op.set(key, op.get(key) || {value: inp, count:0})

  op.get(key).count++

  return op

},new Map())



let final = [...mapper.values()].reduce((op,{value,count}) => {

   if(count === 1){

    op.push(value)

   }

   return op

},[])


console.log(final)


查看完整回答
反對 回復 2021-11-18
  • 1 回答
  • 0 關注
  • 147 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號