У меня возникла проблема при попытке проверить наличие дубликатов по нескольким полям перед вставкой в array
. То, что я пытаюсь сделать, это извлечь из firebase
, проверить поля accountID
и subtype
перед вставкой в array
, который должен быть разрешен Обещание.
То, что я пытаюсь достичь, это: Если то же самое accountID
, другое subtype
, тогда я добавляю; Если тот же accountID
, тот же subtype
, я перехожу к следующему; Если другой accountID
, другой subtype
, я добавляю. Вот мой код:
code:
var datasetarr = [];
let promiseKey = new Promise((resolve, reject) => {
for(var i = 0; i < receiptlist.length; i++){
for(var k = 0; k < ritemlist.length; k++){
if(receiptlist[i].date.substring(0, 4) == new Date().getFullYear()){
if(ritemlist[k].receiptID == receiptlist[i].receiptID){
//check duplicate here before insert
if (!datasetarr.find(o => o.accountID === receiptlist[i].accountID && o.subtype === ritemlist[k].type))
datasetarr.push({accountID: receiptlist[i].accountID, subtype: ritemlist[k].type});
}
}
}
}
}
resolve(datasetarr);
});
Часть, когда я пытался распечатать массив:
array:
promiseKey.then((arr) => {
console.log(arr);
});
Вывод, который я получаю:
output:
Я все еще вижу много дубликатов с тем же accountID и тем же подтипом. Есть ли способ решить эту проблему?
Спасибо!