Удаление выбранных повторяющихся слов в предложении с помощью javascript

#javascript #jquery #duplicates

#javascript #jquery #дубликаты

Вопрос:

Я хочу удалить некоторые слова, которые начинаются с @ в предложении, которые дублируются в javascript, как я могу этого добиться.
Например:

 "This is @banker does banking in a @bank, this @banker is good."  
  

Здесь, в этом предложении, я хочу удалить из него лишнее слово «@banker».

  1. Как я могу это сделать в javascript?
  2. Учтите, что каждое слово, которое следует удалить, будет начинаться с «@»

Комментарии:

1. Сначала вы пытаетесь что-то сделать. Тогда мы поможем, если у вас возникнет проблема.

2. Я попытался разделить и смог удалить дубликаты, но все дубликаты удаляются. вот в чем проблема. Я хочу удалить дубликаты, которые начинаются только с @ .

3. Это изменит смысл предложения. ", this is good" = хорошо, что банковское обслуживание осуществляется в банке (this = банковское дело), в то время как ", this banker is good" = сами банкиры хороши в том, что они делают (this = банкир).

4. Здесь предложение является всего лишь примером.

Ответ №1:

Вот возможное решение:

 const text = 'This is @banker does banking in a @bank, this @banker is good.';
const splittedWords = text.split(' ');

let newSentence = [];

splittedWords.forEach(word => {
    if (word.startsWith('@')) {
        if (newSentence.indexOf(word) === -1) {
            newSentence.push(word);
        }
    } else {
        newSentence.push(word);
    }
});

console.log(newSentence.join(' '));  

Обновить

 const text = 'This is @2, this is @3, this is @2';
const splittedWords = text.split(' ');

let newSentence = [];

splittedWords.forEach(word => {
    if (word.startsWith('@')) {
        cleanedSentence = newSentence.map(word => word.replace(/,/g, ''));
        cleanedWord = word.replace(/,/g, '');
        if (cleanedSentence.indexOf(cleanedWord) === -1) {
            newSentence.push(word);
        }
    } else {
        newSentence.push(word);
    }
});

console.log(newSentence.join(' '));  

Комментарии:

1. Это хорошо, это работает для алфавитов, но не для чисел, например «Это @ 2, это @ 3, это @ 2», это не удаляет полный дубликат (@ 2), это просто удаляет @ из повторяющихся возвратов (2). пример для предыдущего предложения: «Это @ 2, это @ 3, это 2»

2. @RohitGowda это не проблема type . Проблема в том, что это разные строки (из-за запятой) @2, и @2 . Я обновляю ответ.