Os espaços são aparados antes da comparação
A ferramenta divide linhas LF ou CRLF, apara as extremidades se solicitado, remove linhas vazias, remove duplicatas e depois ordena opcionalmente. Aparar e remover linhas vazias vêm ativados; ordenar vem desativado. trim() do JavaScript remove os espaços definidos na especificação nas duas extremidades, preservando os internos.
A primeira linha tem um espaço de cada lado de A. Com as duas remoções ativadas, restam A e B em duas linhas. Desativar apenas o corte de espaços deixa três: A com espaços, A sem espaços e B. A notação JSON abaixo coloca aspas no conteúdo para mostrar os espaços; a ferramenta separa a saída com quebras de linha.
[" A ", "A", "A", "", "B"]
trim = true: ["A", "B"]
trim = false: [" A ", "A", "B"]São comparadas strings exatas, não valores ou significados
Set mantém uma cópia de cada string idêntica. Apple e apple ficam separados, assim como 01 e 1. A B e A B também diferem pelo espaçamento interno. Não há comparação semântica de URLs, unificação de maiúsculas e minúsculas nem normalização Unicode. Sem ordenação, mantém-se a ordem da primeira ocorrência.
["Apple", "apple", "01", "1", "A B", "A B"]Experimente aparar listas de palavras-chave. Desative se a indentação ou os espaços nas pontas forem importantes. A remoção de linhas vazias exclui linhas só com espaços mesmo sem aparar. Preserve o original, confira algumas linhas representativas e só então processe a lista inteira. Após mudar entrada ou opções, remova duplicatas novamente.
Perguntas frequentes
Ordenar remove mais duplicatas?
Não. Depois de remover duplicatas, localeCompare ordena usando o idioma da página. Muda a ordem, não o critério de igualdade. Também não interpreta as linhas como números.