Uporządkuj listę bez zmieniania jej wartości
Aby uporządkować listę bez zmiany zapisu zachowanych pozycji, pracuj na kopii, usuwaj tylko zbędne wiersze i zacznij od dokładnych duplikatów. Sortowanie i usuwanie białych znaków traktuj jako oddzielne decyzje. Wielka litera, początkowe zero lub spacja mogą być częścią identyfikatora.
Ustal, co można usunąć
Przed wprowadzeniem zmian zachowaj oryginał. Sprawdź, czy każdy wiersz rzeczywiście stanowi osobny element. Powtórzony wpis może oznaczać kilka rzeczywistych transakcji, a pusty wiersz może oddzielać grupy. Usunięcie ich zmieniłoby wtedy informacje, nawet gdyby tekst w pozostałych wierszach pozostał bez zmian.
Nie wklejaj ustrukturyzowanego pliku CSV bezpośrednio do tych narzędzi operujących na wierszach. Pole w cudzysłowie może zawierać znak końca wiersza, a spacje stanowią część jego wartości, jak opisano w RFC 4180. Informacje o tym formacie znajdziesz w poradniku konwersji CSV do JSON.
Usuń tylko niepotrzebne wiersze
Narzędzie Usuwanie pustych wierszy usuwa wiersze bez znaków oraz wiersze złożone wyłącznie z białych znaków rozpoznawanych przez JavaScript.
Zwykła spacja to jeden konkretny znak; „białe znaki” obejmują też tabulatory i niektóre spacje Unicode, w tym spację nierozdzielającą. Narzędzie zachowuje spacje w wierszach zawierających tekst. Niewidoczny znak nie zawsze jest jednak rozpoznawany jako biały znak: wiersz ze spacją o zerowej szerokości U+200B pozostaje.
Wybierz właściwą regułę dopasowywania duplikatów
Narzędzie Usuwanie powtórzonych wierszy oferuje cztery opcje:
- „Dokładny tekst (domyślnie)” zachowuje różnice w wielkości liter i odstępach.
- Opcja „Ignoruj wielkość liter” dopasowuje wielkie i małe litery zgodnie z ustawieniami językowymi przeglądarki.
- „Ignoruj początkowe i końcowe białe znaki” porównuje wiersze bez białych znaków na ich krańcach.
- „Ignoruj wielkość liter i skrajne białe znaki” łączy obie mniej ścisłe reguły dopasowania.
W każdym trybie pierwszy pasujący wiersz pozostaje dokładnie w takiej postaci, w jakiej go wprowadzono. Ignorowanie białych znaków podczas porównania nie usuwa ich z wyniku. Spacje wewnątrz wiersza nadal mają znaczenie. Wyglądające identycznie znaki diakrytyczne zapisane różnymi sekwencjami Unicode nie są automatycznie normalizowane podczas usuwania duplikatów.
Przetestuj na przykładowych kodach referencyjnych
Oto krótka lista. Kropka środkowa · oznacza rzeczywistą spację, a ⇥ tabulator; symbole te służą jedynie do zwiększenia czytelności przykładu.
REF-0010 ·REF-0002· REF-0002 REF-0002 ref-0002 REF-2 ·⇥
Usunięcie pustych wierszy kasuje drugi i ostatni wiersz. Dopasowanie dokładne usuwa następnie tylko drugie identyczne wystąpienie REF-0002. Zachowuje REF-0010, ·REF-0002·, REF-0002, ref-0002 i REF-2, w tej kolejności.
Na liście bez pustych wierszy tryb ignorujący białe znaki zachowuje ·REF-0002· i usuwa dwa kolejne wpisy REF-0002. Wariant z małymi literami pozostaje. Po połączeniu obu opcji znika również ten wariant. REF-2 pozostaje odrębny od REF-0002: początkowe zera nie są usuwane.
Jeśli rzeczywiście chcesz usunąć skrajne białe znaki, użyj narzędzia Usuwanie białych znaków na końcach wierszy. Ten krok zmienia wartości. Pozostawia spacje wewnętrzne i puste wiersze. Stosuj go tylko wtedy, gdy te białe znaki są niepożądane, a następnie w razie potrzeby ponów usuwanie dokładnych duplikatów. Działanie opiera się na String.trim().
Sortuj tylko wtedy, gdy kolejność może się zmienić
Sortowanie wierszy alfabetycznie oferuje opcje „Jako tekst (item10 przed item2)” i „Według wartości liczbowej (item2 przed item10)”. Dla REF-10 i REF-2 te tryby dają odpowiednio kolejność REF-10, REF-2 oraz kolejność odwrotną.
Tryb numeryczny porównuje liczby w tekście bez zmieniania kodów referencyjnych: zera wiodące pozostają. Wiersze uznane za równe zachowują pierwotną kolejność, a puste wiersze trafiają na początek.
Oba tryby stosują reguły językowe przeglądarki, ignorują wielkość liter i mogą traktować niektóre litery ze znakami diakrytycznymi jako równoważne. Kolejność nie wynika więc ze ścisłego porównania znak po znaku. Dokumentacja Intl.Collator wyjaśnia te różnice między językami. Zachowaj pierwotną kolejność, jeśli przedstawia chronologię lub priorytet.
Co sprawdzić przed zastąpieniem oryginału
- Oryginał został zapisany osobno.
- Każdy usunięty wiersz rzeczywiście miał zostać usunięty.
- Wielkość liter, istotne spacje i początkowe zera są zachowane.
- Wynik został przetestowany w aplikacji docelowej.
Najczęstsze pytania
Dlaczego pozorny duplikat nadal występuje?
Sprawdź białe znaki, wielkość liter i znaki Unicode. Tryb dokładny uwzględnia te różnice; nie zmieniaj reguły, nie rozumiejąc ich znaczenia.
Czy zawsze należy usuwać białe znaki przed usuwaniem duplikatów?
Nie. Zacznij od dokładnego porównania. Czasem wystarczy ignorować białe znaki, aby usunąć duplikaty i zachować zapis pierwszego wystąpienia.
Czy przetwarzanie lokalne oznacza brak połączenia z siecią?
Przetwarzanie odbywa się w Twojej przeglądarce. Otwarcie strony powoduje pobranie kodu i zasobów z witryny: nie gwarantuje to przeglądania bez żądań sieciowych.