首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何更新或删除节点中的结果数组

如何更新或删除节点中的结果数组
EN

Stack Overflow用户
提问于 2018-12-23 06:40:42
回答 1查看 44关注 0票数 0

我被弄糊涂了,如何完成这个任务让我展示代码然后发布。

案例1

代码语言:javascript
复制
let arr1=[1,3]
let arr2=[1,2,3]

比较这两个数组,如果arr2更大,那么从数据库中删除2

案例2

代码语言:javascript
复制
let arr1=[1,2,3]
let arr2=[1,2]

如果arr1更大的话,比较这两个数组,然后将3插入数据库并返回承诺拒绝,比如解析,任何人都可以告诉我什么是实现这一目标的最佳方法。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-12-23 07:05:51

解决你的问题

步骤1:找到这两个数组中的不同之处,比如arr1和arr2

步骤2:检查arr2.ength是否大于删除db中的差异

步骤3:如果arr1.ength大于插入db中的差异

对于步骤1,实现以下“差异”函数:

代码语言:javascript
复制
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:

代码语言:javascript
复制
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)
  });
 }
}

快乐编码:)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53901741

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档