Languages
[Edit]
PL

JavaScript - usuwanie zduplikowanych linii

0 points
Created by:
Niac
478

Witam! 👋 😊

W tym artykule chciałbym pokazać dwa sposoby usuwania zduplikowanych wierszy z tekstu w JavaScript.

Użyjemy dwóch metod: 

  • filter()
  • reduce()

1. Przykład oparty na metodzie filter()

W tym rozwiązaniu używam komponentów funkcyjnych.

W tekście użyłem zestawu operacji do usunięcia zduplikowanych wierszy:

  • split() dzieli tekst na linie, które przyjmują znak nowej linii w 4 różnych wariantach, co jest podejściem uniwersalnym,
  • filter() tworzy nową tablicę elementów testowanych za pomocą dostarczonej funkcji,
  • join() do scalania elementów z powrotem.

Uwaga:
Więcej informacji na temat dzielenia tekstu możecie znaleźć w tym artykule .

// ONLINE-RUNNER:browser;

const newLineExpression = /\r\n|\n\r|\n|\r/g;

const removeDuplicatedLines = (text) => {
  	return text.split(newLineExpression)
  		.filter((item, index, array) => array.indexOf(item) === index)
    	.join('\n');
};

// Przykład użycia:

const text = `a
b
b
a
a
c
c`;

console.log(removeDuplicatedLines(text)); // a
                                          // b
                                          // c

2. Przykład oparty na metodzie reduce()

Podejście to zostało stworzone, aby pokazać, że można uzyskać taki sam efekt, jak w powyższym przykładzie przy użyciu metody reduce().

Praktyczny przykład:

// ONLINE-RUNNER:browser;

const newLineExpression = /\r\n|\n\r|\n|\r/g;

const removeDuplicatedLines = (text) => {
  	const blocker = {}; // zapobiega duplikowaniu linii
  	return text.split(newLineExpression)
    	.reduce((result, line) => {
        	if (blocker.hasOwnProperty(line)) {
				return result;
            }
            blocker[line] = true;
            return result + line + '\n';
        }, '');
};

// Przykład użycia:

const text = `a
b
b
a
a
c
c`;

console.log(removeDuplicatedLines(text)); // a
                                          // b
                                          // c

Powiązane posty

Donate to Dirask
Our content is created by volunteers - like Wikipedia. If you think, the things we do are good, donate us. Thanks!
Join to our subscribers to be up to date with content, news and offers.
Native Advertising
🚀
Get your tech brand or product in front of software developers.
For more information Contact us
Dirask - we help you to
solve coding problems.
Ask question.

❤️💻 🙂

Join