簡體   English   中英

JavaScript 中如何檢查兩個對象的匹配數據是否很少

[英]How to check whether two Objects has few of the matching data in JavaScript

我有這樣的數據:

Array = [
  { 0: { Id: 18, Time: 3 } },
  { 1: { Id: 5, Time: 7 } },
  { 2: { Id: 18, Time: 10 } },
  { 3: { Id: 2, Time: 9 } },
];

如您所見, Object 0Object 2具有相同的 ID。 我想執行一個操作,該操作將檢查是否有任何對象具有相同的 Id 並返回 true 或 false。

下面的代碼可能會有所幫助。

 function getMatch(array) { var idArray = array.map(a => a.Id); return idArray.some((a, index) => idArray.indexOf(a) !== index); } var arr = [ { Id: 18, Time: 3 }, { Id: 5, Time: 7 }, { Id: 18, Time: 10 }, { Id: 2, Time: 9 } ]; console.log(getMatch(arr));

您可以將對象數組映射到其條目,然后將整個對象映射到其Id以獲取Id數組。 您可以將這個 id 數組放入一個集合中以刪除重復項,並將其與數組的長度進行比較,以檢查創建集合時是否刪除了一個Id

 const arr = [{ 0: { Id: 18, Time: 3 } }, { 1: { Id: 5, Time: 7 } }, { 2: { Id: 18, Time: 10 } }, { 3: { Id: 2, Time: 9 } }]; const ids = arr.map(Object.values).map(([{Id}]) => Id); const hasSameId = ids.length !== new Set(ids).size; console.log(hasSameId);

使用這個函數會告訴你的數組中存在相同的 id。

 SameIdMatch() { let idList = []; for (let i = 0; i < Array.length; i++) { if(idList.indexOf(Array[i].Id) === -1) { idList.push(Array[i].Id); return true; } else { return false; } } }

試試這個襯里。

 const input = [ { 0: { Id: 18, Time: 3 } }, { 1: { Id: 5, Time: 7 } }, { 2: { Id: 18, Time: 10 } }, { 3: { Id: 2, Time: 9 } } ]; const hasDuplicate = input.length !== [...new Set(input.map((item, index) => item[index].Id))].length; console.log(hasDuplicate);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM