是否可以在JavaScript中合并两个字符串,以便保持所有相似之处,只保留差异。
例如
var string1 = "I am a sentence";
var string2 = "I am a dancer";
var string3 = function(string1, string2);
string3 = "I am a sentence dancer";
保留了相似之处,但差异被添加到字符串中。
我问的原因是我有一个网站应用程序,用户可以通过contenteditable
编辑页面,也可以通过<textarea></textarea>
编辑代码本身。因此,如果他们同时编辑,则会提交两个更改。
答案 0 :(得分:2)
我希望在编辑内容可编辑时更新textarea数据,并在编辑textarea时更新内容可编辑。这样,您就可以确保为用户保存所有编辑内容。
答案 1 :(得分:0)
我认为它可以作为一种变体。
function merge(str, str2){
var a = str.split(" ");
str2.split(" ").forEach(function(i, index){
var len = a.filter(function(item){return item == i;}).length;
if(len == 0) a.push(i);
});
return a.join(" ");
}
console.log(merge("I am a sentence","I am a dancer"));
// result "I am a sentence dancer"
使用demo!
进行游戏答案 2 :(得分:0)
如果您想要在角色级别(而不仅仅是单词级别)进行合并,那么您需要一个更通用的解决方案。 The levenshtein distance是将一个刺激转换为另一个刺激所需的更改(替换,添加)的数量。例如,试试这个网站 http://andrew.hedges.name/experiments/levenshtein/
有许多levenshten算法示例可以是found on the web。您需要稍微修改它们,不仅要报告两个字符串之间的更改,还要使用它们将两者合并在一起。