Skip to content

Instantly share code, notes, and snippets.

@koonuf
Last active August 29, 2015 14:21
Show Gist options
  • Save koonuf/e0fdf84bd6086286273f to your computer and use it in GitHub Desktop.
Save koonuf/e0fdf84bd6086286273f to your computer and use it in GitHub Desktop.
function mergeDescendingCollections(target, source) {
var nextTargetIndex = 0, i = 0,
targetItem = target[nextTargetIndex++],
result = [];
while (i < source.length) {
var sourceItem = source[i];
if (!targetItem || sourceItem.counter > targetItem.counter) {
result.push(sourceItem);
i++;
} else {
if (sourceItem.counter === targetItem.counter) {
i++; // not to add duplicates
}
result.push(targetItem);
targetItem = target.length > nextTargetIndex ? target[nextTargetIndex++] : null;
}
}
while (targetItem) {
result.push(targetItem);
targetItem = target.length > nextTargetIndex ? target[nextTargetIndex++] : null;
}
return result;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment