![](/img/trans.png)
[英]How to check whether form data is changed or not, excluding few fields on form?
[英]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 0
和Object 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.