Javascript 比较两个字符串并返回不同的拉伸

Javascript 比较两个字符串并返回不同的拉伸,javascript,Javascript,我有两条这样的线: var str1 = "lorem ipsum dolor sit amet"; var str2 = "ipsum dolor"; 我试着比较它们,得到一个数组,数组中的所有内容都与这个比较和匹配不匹配!一个是乞讨,另一个是结局 例如:在上面的这种情况下,返回应该是如下所示的数组: result[0] //should keep the begining **"lorem "** (with the blank

我有两条这样的线:

var str1 = "lorem ipsum dolor sit amet";
var str2 = "ipsum dolor";
我试着比较它们,得到一个数组,数组中的所有内容都与这个比较和匹配不匹配!一个是乞讨,另一个是结局

例如:在上面的这种情况下,返回应该是如下所示的数组:

result[0] //should keep the begining **"lorem "** (with the blank space after word)

result[1] // should keep the ending **" sit amet"** (with the blank space before word)

result[2] // should keep the match **"ipsum dolor"**
我得到的只是@发布的一个优雅的解决方案。但是我可以分别得到这个值

就这样,

result[0] //should keep the begining **"lorem "** (with the blank space after word)

result[1] // should keep the ending **" sit amet"** (with the blank space before word)

result[2] // should keep the match **"ipsum dolor"**
const A=“ipsum dolor”
const B=“lorem ipsum door sit amet”
常量diff=(diffMe,diffBy)=>diffMe.split(diffBy.join)(“”)
常数C=diff(B,A)
console.log(C)//跳过懒狗。
constdiff=(str,query)=>[…str.split(query),query];
/*
1.只要找到查询,我们就将字符串拆分为一个数组
2.我们将(…)数组展开为一个新数组
3.我们在新数组的末尾添加查询
*/
var str=“lorem ipsum dolor sit amet”;
var query=“ipsum dolor”;
const result=diff(str,query)
console.log(结果)
console.log(结果[0])
console.log(结果[1])
console.log(结果[2])
constdiff=(str,query)=>[…str.split(query),query];
/*
1.只要找到查询,我们就将字符串拆分为一个数组
2.我们将(…)数组展开为一个新数组
3.我们在新数组的末尾添加查询
*/
var str=“lorem ipsum dolor sit amet”;
var query=“ipsum dolor”;
const result=diff(str,query)
console.log(结果)
console.log(结果[0])
console.log(结果[1])

log(结果[2])
我认为您的要求在逻辑上是不可能的。“字符串”可以是一个字母,这将变得非常混乱。充其量可能是这样的

var str1=“lorem ipsum door sit amet”;
var str2=“ipsum dolor”;
var部件=str1.拆分(str2);

控制台日志(部分);//我认为你的要求在逻辑上是不可能的。“字符串”可以是一个字母,这将变得非常混乱。充其量可能是这样的

var str1=“lorem ipsum door sit amet”;
var str2=“ipsum dolor”;
var部件=str1.拆分(str2);

控制台日志(部分);//['lorem','sit amet']
您可以将目标字符串按搜索字符串拆分,然后将后者附加到解决方案中

const haystack='lorem ipsum door sit amet';
恒针=‘同侧多洛’;
常数差=(针,干草堆)=>
[…干草堆。分开(针),针]
控制台日志(diff(针、干草堆));

//[“lorem”、“sit amet”、“ipsum dolor”]
您可以按搜索字符串拆分目标字符串,并将后者附加到解决方案中

const haystack='lorem ipsum door sit amet';
恒针=‘同侧多洛’;
常数差=(针,干草堆)=>
[…干草堆。分开(针),针]
控制台日志(diff(针、干草堆));

//[“lorem”、“sit amet”、“ipsum dolor”]
如果您从现有的解决方案中删除
.join(“”)
,您将获得类似
[“lorem”、“sit amet”]
的数组。一个问题是,如果子字符串多次包含在另一个字符串中,您希望发生什么?(如果在您的用例中有这种可能性)如果您从现有的解决方案中删除
.join(“”)
,您将得到一个类似
[“lorem”,“sit amet”]
的数组。一个问题是,如果子字符串多次包含在另一个字符串中,您希望发生什么?(如果在您的用例中有这种可能性)始终在您的答案中提供解释。Sry我将答案发布到fast。刚刚看到你更新的问题。第一个问题更容易被忽略。@Marvin答案在解释每个步骤的代码中都有注释。这还不够吗?在stackoverflow中,我是否需要代码外的文本才能获得好的答案?如果是这样,我可以停止在代码中添加注释,并在代码段上方添加信息。Thx提供信息。请始终在您的答案中提供解释。Sry我已将答案发布到fast。刚刚看到你更新的问题。第一个问题更容易被忽略。@Marvin答案在解释每个步骤的代码中都有注释。这还不够吗?在stackoverflow中,我是否需要代码外的文本才能获得好的答案?如果是这样,我可以停止在代码中添加注释,并在代码段上方添加信息。Thx提供信息。可运行的代码片段很酷。它们允许询问者立即测试您的解决方案,您应该使用它们。要求是将查询添加为结果中的最后一项。可运行的代码片段很酷。它们允许询问者立即测试您的解决方案,您应该使用它们。要求将查询添加为结果中的最后一项。