Javascript проверяет дубликаты перед вставкой в ​​массив

hyperfkcb спросил: 26 ноября 2017 в 05:30 в: javascript

У меня возникла проблема при попытке проверить наличие дубликатов по нескольким полям перед вставкой в ​​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 и тем же подтипом. Есть ли способ решить эту проблему?

Спасибо!

0 ответов