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]);
    }

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];
}

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!


7

simplesmente usou o +operador. Javascript concats strings com +


5

Parece que você deseja usar join, por exemplo:

var text = list.join();

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.


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

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.