我正在尝试用 Javascript 构建一个文件比较脚本,它需要两个版本的文件并输出类似 Github 的内容,显示添加和删除。不过,我在算法的逻辑上遇到了麻烦。到目前为止,这是我的流程的伪代码:
var j = 0;
// check current file line by line
for(i=0; i < currentFileArr.length; i++){
// see if the current line is different
if(currentFileArr[i] !== previousFileArr[j]){
if(previousFile.contains(currentFileArr[i])){
// line is a deletion. find next line that wasn't deleted
while(currentFileArr[i] !== previousFileArr[j]){
j++;
}
} else {
// line is an addition
}
} else { // lines are the same
j++;
}
}
主要问题在于不唯一的行。就像新行或只有花括号的行。