gpt4 book ai didi

javascript - 检查字符串之间的不匹配词

转载 作者:太空宇宙 更新时间:2023-11-04 14:25:54 24 4
gpt4 key购买 nike

如果您登录 words1[i],这里的代码将输出两个字符串中的所有匹配词。我稍微更改了代码以检查不匹配的词,但没有成功。假设我们有两个字符串:

var str1 = "world is beautiful";
var str2 = "is world butiful";

然后代码的输出将是(在控制台上):

(2) ["is"、“美丽”]

(2) [“世界”,“美丽”]

我们如何记录字符串之间不匹配的单词?

输出应该是一个结果数组,类似于:

[美丽]

这是我尝试过的:

var str1 = "world is beautiful";
var str2 = "is world bautiful";

var words1 = str1.split(/\s+/g),
myArray = str1.split(/\s+/g),
words2 = str2.split(/\s+/g),
i,
j;

for (i = 0; i < words1.length; i++) {
for (j = 0; j < words2.length; j++) {
if (words1[i].toLowerCase() == words2[j].toLowerCase()) {

output = myArray.filter( ( el ) => !words1[i].includes( el ) );
console.log(output);

}
}
}

似乎是因为 words1[i] 不是数组,整个代码无法正常工作。

有什么建议吗?

最佳答案

要在结果中多次允许相同的值,您可以使用 includes

let a = "sent erth protect it".split(' ');
let b = "sent to earth to protect it".split(' ');
let res = b.filter(i => !a.includes(i));
console.log(res);

或者正如@Dhananjai Pai 指出的那样,创建一个 Map并使用 get检查键的值是否为 true:

let map = new Map();
"sent erth protect it".split(' ').forEach(x => map.set(x, true));
let res = "sent to earth to protect it".split(' ').filter(x => !map.get(x));
console.log(res);

关于javascript - 检查字符串之间的不匹配词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54266453/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com