確定物件和數組中的值之間的差異
P粉930534280
P粉930534280 2023-09-03 19:28:50
0
2
540
<p>我有以下物件和數字陣列。如何判斷數組中的哪個數字不作為物件中的 id 存在?在下面的範例中,我想要 1453。 </p> <pre class="brush:php;toolbar:false;">[ {id: 60, itemName: 'Main Location - 1100 Superior Road - Cleveland'} {id: 1456, itemName: 'Third Location - 107,West 20th Street,Manhattan - New York'} ] [60, 1453, 1456]</pre></p>
P粉930534280
P粉930534280

全部回覆(2)
P粉420868294

對於更多的資料項目和更多的id,我會選擇一種建立Set 通過##mapping 每個##​​#itemList項目的id...

const idLookup = new Set(itemList.map(({ id }) => id));
直接從

集合

Map 實例比例如更快透過 一次又一次迭代數組尋找 包含外部過濾任務。 過濾不匹配的 item-

id

列表就像...一樣簡單

const listOfNonMatchingIds = idList.filter(id => !idLookup.has(id));
...範例程式碼...

const itemList = [
  { id: 60, itemName: 'Main Location - 1100 Superior Road - Cleveland' },
  { id: 1456, itemName: 'Third Location - 107,West 20th Street,Manhattan - New York' },
];
const idList = [60, 1453, 1456];

const idLookup = new Set(itemList.map(({ id }) => id));
const listOfNonMatchingIds = idList.filter(id => !idLookup.has(id));

console.log({ listOfNonMatchingIds });
.as-console-wrapper { min-height: 100%!important; top: 0; }
P粉130097898

您可以使用.map(),然後使用.filter().includes ()

const data = [
  {id: 60, itemName: 'Main Location - 1100 Superior Road - Cleveland'},
  {id: 1456, itemName: 'Third Location - 107,West 20th Street,Manhattan - New York'}
]

const ids = [60, 1453, 1456];
const dataIDs = data.map(ob => ob.id);  // [60, 1456]
const notExistentIDs = ids.filter(id => !dataIDs.includes(id));

console.log(notExistentIDs);  // [1453]
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板