Limpar uma lista sem alterar seus valores

Para limpar uma lista mantendo a escrita dos itens preservados, trabalhe numa cópia, remova somente as linhas desnecessárias e comece pelas duplicados exatas. Trate a ordenação e a remoção de espaços como decisões separadas. Uma letra maiúscula, um zero à esquerda ou um espaço podem fazer parte de um identificador.

Definir o que pode ser removido

Guarde o original antes de qualquer alteração. Verifique se cada linha realmente corresponde a um item independente. Uma repetição pode representar várias operações reais; uma linha vazia pode separar grupos. Nesses casos, removê-las altera a informação, mesmo que o texto das outras linhas permaneça intacto.

Não cole um CSV estruturado diretamente nessas ferramentas de linhas. Um campo entre aspas pode conter uma quebra de linha, e seus espaços fazem parte do valor, como descreve a RFC 4180. Para esse formato, consulte o guia de CSV para JSON.

Remover as linhas realmente desnecessárias

A ferramenta para remover linhas em branco elimina linhas sem caracteres e aquelas compostas apenas por caracteres de espaço em branco reconhecidos pelo JavaScript.

O espaço comum é um carácter específico; “espaço em branco” também inclui tabulações e certos espaços Unicode, como o espaço inseparável. A ferramenta preserva os espaços das linhas que contêm texto. No entanto, um carácter invisível nem sempre é um espaço em branco reconhecido: uma linha com um espaço de largura zero U+200B permanece.

Escolher a regra adequada para duplicados

Na ferramenta para remover linhas duplicadas, há quatro opções:

  • “Texto exato (padrão)” preserva as diferenças entre maiúsculas, minúsculas e espaçamento.
  • “Ignorar maiúsculas e minúsculas” agrupa as variantes de letras conforme o idioma do navegador.
  • “Ignorar espaços no começo e no fim” compara as linhas sem os espaços em branco das extremidades.
  • “Ignorar maiúsculas e espaços externos” combina as duas flexibilizações.

Em todos os modos, a primeira linha correspondente mantém a escrita da entrada. Ignorar seus espaços na comparação não os remove do resultado. Os espaços internos continuam a ser significativos. Dois acentos visualmente iguais, mas codificados de formas diferentes em Unicode, não são normalizados automaticamente para eliminar duplicados.

Testar com referências fictícias

Veja esta pequena lista. O ponto médio · representa um espaço real e ⇥ representa uma tabulação; esses símbolos servem apenas para facilitar a leitura do exemplo.

REF-0010

·REF-0002·
REF-0002
REF-0002
ref-0002
REF-2
·⇥

A remoção de linhas em branco elimina a segunda e a última linha. Em seguida, o modo exato remove somente a segunda ocorrência idêntica de REF-0002. Ele mantém REF-0010, ·REF-0002·, REF-0002, ref-0002 e REF-2, nessa ordem.

Na lista sem linhas em branco, o modo que ignora espaços mantém ·REF-0002· e remove as duas linhas REF-0002 seguintes. A variante em minúsculas permanece. Com a opção combinada, ela também é removida. REF-2 continua diferente de REF-0002: os zeros à esquerda não são retirados.

Se realmente quiser eliminar os espaços em branco das extremidades, use a ferramenta para remover espaços no início e no fim de cada linha. Essa etapa altera os valores. Ela mantém os espaços internos e as linhas vazias. Aplique esse tratamento somente se esses espaços forem indesejados e, se necessário, repita a remoção de duplicados exatas. O comportamento baseia-se em String.trim().

Ordenar somente se a ordem puder mudar

A ferramenta para ordenar linhas de texto oferece “Como texto (item10 antes de item2)” e “Pelo valor numérico (item2 antes de item10)”. Com REF-10 e REF-2, esses modos produzem, respectivamente, REF-10 seguido de REF-2 e a ordem inversa.

O modo numérico compara os números no texto sem reescrever as referências: os zeros à esquerda permanecem. As linhas consideradas equivalentes mantêm a ordem original; as linhas vazias vão para o início.

Os dois modos seguem as regras do idioma do navegador, ignoram a diferença entre maiúsculas e minúsculas e podem tratar certos acentos como equivalentes. Portanto, a ordem não resulta de uma comparação estrita carácter por carácter. A documentação de Intl.Collator explica essas diferenças entre idiomas. Preserve a ordem original se ela representar uma cronologia ou prioridade.

Verificações antes de substituir o original

  • O original foi preservado separadamente.
  • Cada linha removida corresponde a uma exclusão desejada.
  • Maiúsculas, minúsculas, espaços significativos e zeros à esquerda foram preservados.
  • O resultado foi testado na aplicação de destino.

Perguntas frequentes

Por que uma aparente duplicado continua na lista?

Verifique os espaços em branco, as maiúsculas e minúsculas e os caracteres Unicode. O modo exato respeita essas diferenças; não mude a regra sem compreender a sua função.

É sempre necessário remover espaços antes das duplicados?

Não. Comece pela comparação exata. Às vezes, ignorar os espaços já permite remover duplicados preservando a escrita da primeira ocorrência.

Processamento local significa que não há nenhuma ligação de rede?

O processamento acontece no navegador. Abrir a página carrega código e recursos do site: isso não garante uma navegação sem solicitações de rede.