Как обновить или удалить массив результатов в узле - PullRequest
0 голосов
/ 23 декабря 2018

Я запутался, как для выполнения этой задачи, позвольте мне показать код, затем выполнить

case 1

let arr1=[1,3]
let arr2=[1,2,3]

сравнить эти 2 массива, если arr2 больше, чемудалить 2 из базы данных

case 2

let arr1=[1,2,3]
let arr2=[1,2]

сравнить эти 2 массива, если arr1 больше, затем вставить 3 в базу данных и вернуть обещание отклонить, как решение может кто-нибудь сказатьмне, что лучше всего для этого.

1 Ответ

0 голосов
/ 23 декабря 2018

решение вашей проблемы

Шаг 1: найдите разницу в двух массивах, скажем, arr1 & arr2

Шаг 2: проверьте, больше ли arr2.length, чем удалите разницу изdb

Шаг 3: если arr1.length больше, чем разница вставки в db

для шага 1, реализуйте нижеприведенную функцию "разности":

Array.prototype.difference = function(arr) {
return this.filter(function(i) {return arr.indexOf(i) === -1;});
};
[1,2,3,4,5,6].diff( [3,4,5] );// return [1,2,6]
// here you capture the difference among arrays
let diffArray = arr1.difference(arr2);

для шага 2& шаг 3:

if(arr2.length > arr1.length){
  diffArray.forEach((element)=>{
   // your db deletion code comes here something like.....db.delete(element);
   return new Promise((resolve, reject) => {
      // db deletion code
      // return resolve(result)....if successfully inserted
      // reject(err).........if some error occurs
    })
   .then(result => result)
   .catch(err => err)
  });
// similarly
if (arr1.length >arr2.length){
   diffArray.forEach((element)=>{
   // your db insertion code comes here
   return new Promise((resolve, reject) => {
      // db insertion code
      // return resolve(result)....if successfully inserted
      // reject(err).........if some error occurs
    })
   .then(result => result)
   .catch(err => err)
  });
 }
}

Счастливое кодирование:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...