我正在尝试查找字符串中的第一对重复单词,但是我只能让它按句子中第一个单词的顺序查找所有重复对,而不是第一对。例如,在字符串“我全心全意地爱我的安东尼”中,输出应该是我的,但它给了我爱。
let Sentence = 'I love my anthony so much with all my hearts love';
function wordRepeat(str) {
let splitStr = str.split(' ');
let list = [];
for (let i = 0; i < splitStr.length; i++) {
for (let j = i + 1; j < splitStr.length; j++) {
if (splitStr[i].match(splitStr[j])) {
//repeat = splitStr[i];
list.push(splitStr[i]);
}
}
}
//console.log(list);
return list[0];
}
console.log(wordRepeat(Sentence));
输出应该是“ my”,但是我会得到“ love”,但是“ my”是正确的答案,因为它是第一对。
最佳答案
您可以使用如下形式:
function getDuplicate(inString){
const arr=inString.split(/\W+/g);// This is a Regular Expression - See it in use at https://regex101.com/r/X0Cyxx/1
return arr.find( (word,index) =>
arr.slice(0,index).includes(word)
);
}
编辑:
正如@Phil所建议的,我修改了第2行以包括标点符号。谢谢@Phil!