Skip to content

Instantly share code, notes, and snippets.

@tedshd
Created January 6, 2020 11:00
Show Gist options
  • Save tedshd/80bd56f5ef9726fe9d1d0be558d21b8a to your computer and use it in GitHub Desktop.
Save tedshd/80bd56f5ef9726fe9d1d0be558d21b8a to your computer and use it in GitHub Desktop.
sort diff
var arrOld = [2, 5, 3, 8, 9, 11, 12];
var arrNew = [8, 1, 3, 35, 5, 7];
// var arrOld = [
// {id: 2},
// {id: 5},
// {id: 3},
// {id: 8},
// {id: 9},
// {id: 11},
// {id: 12}
// ];
// var arrNew = [
// {id: 8},
// {id: 1},
// {id: 3},
// {id: 35},
// {id: 5},
// {id: 7}
// ];
// var arrOld = [
// {id: 2},
// {id: 5},
// {id: '3'},
// {id: 'hihi'},
// {id: 9},
// {id: 11},
// {id: 12}
// ];
// var arrNew = [
// {id: 'hihi'},
// {id: 1},
// {id: '3'},
// {id: 35},
// {id: 5},
// {id: 7}
// ];
function sortDiff(arrOld, arrNew) {
var tmpArray = [];
var matchArray = [];
for (var a = 0; arrOld.length > a; a++) {
for (var b = 0; arrNew.length > b; b++) {
if (JSON.stringify(arrOld[a]) === JSON.stringify(arrNew[b])) {
tmpArray.push(arrOld[a]);
break;
}
}
}
matchArray = tmpArray.slice();
loop();
function loop() {
if (!matchArray.length) {
return;
}
for (var x = 0; arrNew.length > x; x++) {
for (var y = 0; matchArray.length > y; y++) {
if (JSON.stringify(arrNew[x]) === JSON.stringify(matchArray[y])) {
arrNew.splice(x, 1);
matchArray.splice(y, 1);
return loop();
}
}
}
}
return tmpArray.concat(arrNew);
}
console.log(sortDiff(arrOld, arrNew));
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment