universal-diff
Version:
universal diff & merge algorithm realized with Javascript (between arbitrary scequences)
37 lines (30 loc) • 855 B
JavaScript
/*
* method to compare string
*/
// compare string (use splitter)
var compareStr = function(str1, str2, splitter){
splitter = typeof splitter === 'string' ? splitter : '';
var seq1 = str1.split(splitter),
seq2 = str2.split(splitter),
script = compare(seq1, seq2);
script.forEach(function(change){
if(change[2]){
change[2] = change[2].join(splitter);
}
});
return {
splitter: splitter,
diff: script
};
};
// merge string (add spliter back)
var mergeStr = function(cnt, compareResult){
var splitter = compareResult.splitter,
diff = compareResult.diff,
result = cnt.split(splitter);
for(var i = diff.length - 1, item; i >= 0; i--){
item = diff[i];
result.splice.apply(result, item);
}
return result.join(splitter);
};