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"]
Comparação: A e B com trim ativo; A com espaços, A e B com trim inativo
Diagrama próprio com dados de exemplo verificados. Nos dois resultados, linhas vazias são removidas e a ordenação está desativada. Espaços entre aspas fazem parte dos dados.

ECMAScript: String.prototype.trim

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.

ECMAScript: Set.prototype.add

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.