我正在尝试查找字符串中的第一对重复单词,但是我只能让它按句子中第一个单词的顺序查找所有重复对,而不是第一对。例如,在字符串“我全心全意地爱我的安东尼”中,输出应该是我的,但它给了我爱。

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!

07-25 23:53