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

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

如何按鍵值對對對象數組進行重復數據刪除?

如何按鍵值對對對象數組進行重復數據刪除?

躍然一笑 2022-09-02 10:30:01
// This is a large array of objects, e.g.:let totalArray = [    {"id":"rec01dTDP9T4ZtHL4","fields":    {"user_id":170180717,"user_name":"abcdefg","event_id":516575,    }]let uniqueArray = [];let dupeArray = [];let itemIndex = 0totalArray.forEach(x => {  if(!uniqueArray.some(y => JSON.stringify(y) === JSON.stringify(x))){    uniqueArray.push(x)  } else(dupeArray.push(x))})node.warn(totalArray);node.warn(uniqueArray);node.warn(dupeArray);return msg;我需要我的代碼通過數組中對象中的鍵值user_id來標識數組中的重復項?,F在,我的代碼用于標識數組中的相同對象,但我需要它來根據對象內的鍵值來標識重復項。我該怎么做?我正在努力弄清楚如何通過 for 每個循環來識別基于鍵值而不是整個對象的重復。
查看完整描述

3 回答

?
素胚勾勒不出你

TA貢獻1827條經驗 獲得超9個贊

現在,我的代碼用于標識數組中的相同對象,但我需要它來根據對象內的鍵值來標識重復項。我該怎么做?


不要比較整個對象的 JSON 表示形式,而只比較它們的屬性。user_id


totalArray.forEach(x => {

  if(!uniqueArray.some(y => y.fields.user_id === x.fields.user_id)){

    uniqueArray.push(x)

  } else(dupeArray.push(x))

})


查看完整回答
反對 回復 2022-09-02
?
當年話下

TA貢獻1890條經驗 獲得超9個贊

一種方法是保留到目前為止找到的ID列表,并采取相應的行動:


totalArray = [

  { id: 1, val: 10 },

  { id: 2, val: 20 },

  { id: 3, val: 30 },

  { id: 2, val: 15 },

  { id: 1, val: 50 }

]

const uniqueArray = []

const dupeArray = []

const ids = {}

totalArray.forEach( x => {

  if (ids[x.id]) {

    dupeArray.push(x)

  } else { 

    uniqueArray.push(x)

    ids[x.id] = true

  }

})

for (const obj of uniqueArray) console.log("unique:",JSON.stringify(obj))

for (const obj of dupeArray)   console.log("dupes: ",JSON.stringify(obj))


查看完整回答
反對 回復 2022-09-02
?
慕雪6442864

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

您可以采取 a 并推送到唯一項或重復項。Set


var array = [

        { id: 1, data: 0 },

        { id: 2, data: 1 },

        { id: 2, data: 2 },

        { id: 3, data: 3 },

        { id: 3, data: 4 },

        { id: 3, data: 5 },

    ],

    uniques = [],

    duplicates = [];


array.forEach(

    (s => o => s.has(o.id) ? duplicates.push(o) : (s.add(o.id), uniques.push(o)))

    (new Set)

);


console.log(uniques);

console.log(duplicates);

.as-console-wrapper { max-height: 100% !important; top: 0; }


查看完整回答
反對 回復 2022-09-02
  • 3 回答
  • 0 關注
  • 91 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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