Languages
[Edit]
PL

JavaScript - usuwanie zduplikowanych linii

0 points
Created by:
Niac
208

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

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