我被弄糊涂了,如何完成这个任务让我展示代码然后发布。
案例1
let arr1=[1,3]
let arr2=[1,2,3]比较这两个数组,如果arr2更大,那么从数据库中删除2
案例2
let arr1=[1,2,3]
let arr2=[1,2]如果arr1更大的话,比较这两个数组,然后将3插入数据库并返回承诺拒绝,比如解析,任何人都可以告诉我什么是实现这一目标的最佳方法。
发布于 2018-12-23 07:05:51
解决你的问题
步骤1:找到这两个数组中的不同之处,比如arr1和arr2
步骤2:检查arr2.ength是否大于删除db中的差异
步骤3:如果arr1.ength大于插入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)
});
}
}快乐编码:)
https://stackoverflow.com/questions/53901741
复制相似问题