У меня есть список accounts
. У меня также есть список accountsWithSelectedField
, который я сопоставил следующим образом:
this.accountsWithSelectedField = this.accounts.map(s => ({...s, selected: false}));
Теперь из запроса http я получаю список accountsSetups
(выбранные учетные записи). Я должен сопоставить все соответственно. По сути, это должно выглядеть так:
accounts: 111, 222, 333, 444
accountsWithSelectedField: {111: false}, {222: false}, {333: false}, {444: false}
accountSetups(from http): {222, true, true}, {333, true, false}
After mapping => accountsWithSelectedField: {111: false}, {222: true}, {333: true}, {444: false}
Мне нужна помощь, чтобы понять, как правильно отобразить карту, я попытался сделать это так, но есть некоторые проблемы, либо iban не показывает, либо все отображается как истинное.
this.accountsWithSelectedField = this.accounts.map(o => data.accountSetups.map(s => ({
iban: o.iban,
selected: s.someBoolean || s.anotherBoolean
})));
Также пробовал так:
for (const account of this.accountsWithSelectedField) {
for (const acc of data.accountSetups) {
if (account.iban === acc.account.iban) {
console.log(account.iban + ' is true');
account.selected = true;
}
}
}
И я получил 3 из шести ибанов is true
(правильно), но все шесть из них были выбраны Я не могу понять почему?