Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

split com barra ou com espaço

No capítulo Criando um ajudante uso a função split("/") e no exercício é recomendado usar como parametro uma barra entre as aspas. Quando preencho o campo,(no browser) não digito barra entre as strings e sim dou um espaço, entre o nome o tamanho e o tipo. Usei o split tanto com barra quanto com espaço e ambos funcionaram. Mas como haverá espaço entre as palavras, e não barra, não seria mais acertado usar o split(" ") do que split("/") ?? E por que ambos funcionam??

3 respostas

Oi Valmyr, no placeholder do input informa pra você usar /:

placeholder="formato: nome/tamanho/tipo"

Então quando você fosse digitar os dados era pra ter informado com /. MAs não entendi pq seu código teve o mesmo resultado com o split(" ") do que split("/"). Na verdade não deveria funcionar com barra já que você escreveu com espaços. Tem certeza que salvou e atualizou a página?

Sim, tenho vou enviar os 3 códigos

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Upload de arquivo</title>
</head>
<body>
    <label>Informações do arquivo</label>
    <input class="dados-arquivo" placeholder="formato: nome/tamanho/tipo">

    <button onclick="arquivoController.envia()"  >Enviar</button>

    <script src="Arquivo.js"></script>
    <script src="ArquivoControler.js"></script>
    <script>
        let arquivoController = new ArquivoControler();
    </script>
</body>
</html>
class Arquivo{
    constructor(nome, tamanho, tipo){
        this._nome = nome;
        this._tamanho = tamanho;
        this._tipo = tipo;
    }
    get nome () {
        return this._nome;
    }
    get tamanho(){
        return this._tamanho;
    }
    get tipo(){
        return this._tipo;
    }
}


class ArquivoControler{

constructor(){
    this._inputDados = document.querySelector('.dados-arquivo');
}
envia(){
    let dados = this._inputDados.value.split(' ').map(item =>item.toUpperCase());
    let arquivo = new Arquivo(...dados);
    console.log(arquivo);
    console.log(`dados do arquivo: ${arquivo.nome}, ${arquivo.tamanho}, ${arquivo.tipo}`);
    this._limpaFormulario();
}
_limpaFormulario(){
    this._inputDados.value = " ";
    this._inputDados.focus();

}

}

solução!

Oi Valmyr, eu testei aqui o seu código e deu tudo certo. Só serviu com espaço Aqui ele não separa