Adicionar caracteres a uma string em Javascript

108

Eu preciso adicionar um For Loop caracteres a uma string vazia. Eu sei que você pode usar a função concat em Javascript para fazer concats com strings

var first_name = "peter"; 
var last_name = "jones"; 
var name=first_name.concat(last_name) 

mas com meu exemplo não funciona. Alguma ideia de como fazer de outra maneira?

meu código:

    var text ="";
    for (var member in list) {
            text.concat(list[member]);
    }
Bruno
fonte
1
Se a lista for um array, não use for...insenão um forloop normal . Mais informações aqui: developer.mozilla.org/en/JavaScript/Reference/Statements/… Btw. se você olhar atentamente para ambos os exemplos, poderá ver a diferença ( name=first_name.concat(last_name)vs.text.concat(list[member])
Felix Kling

Respostas:

154
var text ="";
for (var member in list) {
        text += list[member];
}
Blazes
fonte
A melhor maneira seria obter as chaves do objeto em vez de iterar ( for...in) e juntá-las: var text = ""; text += Object.keys(list).join('')
Blazes
50

Você também pode continuar adicionando strings a uma string existente, como:

var myString = "Hello ";
myString += "World";
myString += "!";

o resultado seria -> Hello World!

Matt Sich
fonte
7

simplesmente usou o +operador. Javascript concats strings com +

Neebz
fonte
5

Parece que você deseja usar join, por exemplo:

var text = list.join();
Walter Rumsby
fonte
1
Funciona apenas para matrizes. Mas temo que o OP use for...inpara percorrer um array, então sua sugestão provavelmente funciona.
Felix Kling
5

Para usar String.concat, você precisa substituir o texto existente, pois a função não atua por referência.

var text ="";
for (var member in list) {
        text = text.concat(list[member]);
}

Obviamente, as sugestões join () ou + = oferecidas por outros também funcionarão bem.

Brett Zamir
fonte
Esta é uma boa solução porque deixa a porta aberta para o encadeamento de funções
Mark Carpenter Jr
3

Texto de uso simples = texto + string2

sra
fonte