我有
obj1= [{keyID: 'c71cc89335565241f59ac9bb9da162a3ddf4a6b483bdc06dd82b9275898ba5ee', name: '[email protected]'},
{keyID: '34051d2554ab20b0d24c2c39946d96da7e07508e7a8546bc2df299601dcbff05', name: '[email protected]'}]
和
obj2=[{id: 19, email: '[email protected]', other_field: false},
{id: 221, email: '[email protected]', other_field: false},
{id: 13, email: '[email protected]', other_field: false)},
{id: 2, email: '[email protected]', other_field: true]
正如你所看到的,我obj1 keyID認為這是不同的obj2 ID,這很好。我想將它們分組的東西是 name(obj1) 和 email(obj2) 具有相同電子郵件的欄位應該創建一個具有相同結構 obj2 的新物件,并帶有一個新欄位“ isPresent”
result=[{id: 19, email: '[email protected]', other_field: false,isPresent=false},
{id: 221, email: '[email protected]', other_field: false,isPresent=false},
{id: 13, email: '[email protected]', other_field: false,isPresent=true)},
{id: 2, email: '[email protected]', other_field: true,isPresent=true]
我怎樣才能做到這一點?
uj5u.com熱心網友回復:
您可以映射在obj2并檢查是否具有相同名稱的元素中是否存在obj1通過一些。
我也波及了obj地圖內而不是分配的isPresent直接避免副作用。
const obj1 = [{ keyID: 'c71cc89335565241f59ac9bb9da162a3ddf4a6b483bdc06dd82b9275898ba5ee', name: '[email protected]' }, { keyID: '34051d2554ab20b0d24c2c39946d96da7e07508e7a8546bc2df299601dcbff05', name: '[email protected]' }];
const obj2 = [{ id: 19, email: '[email protected]', other_field: false }, { id: 221, email: '[email protected]', other_field: false }, { id: 13, email: '[email protected]', other_field: false }, { id: 2, email: '[email protected]', other_field: true }];
const result = obj2.map((obj) => ({
...obj,
isPresent: obj1.some(({ name }) => name === obj.email),
}));
console.log(result);
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/330850.html
標籤:javascript 数组 打字稿
下一篇:比較打字稿中的顏色字串
