Estou tentando iterar em uma lista de "valores" e convertê-la em uma string. Aqui está o código:
var blkstr = $.each(value, function(idx2,val2) {
var str = idx2 + ":" + val2;
alert(str);
return str;
}).get().join(", ");
A função alert () funciona perfeitamente e exibe o valor adequado. Mas de alguma forma, a função .get () do jquery não obtém o tipo certo de objeto e falha. O que estou fazendo de errado?
Respostas:
Se
value
for uma matriz associativa, esse código funcionará bem:(a saída aparecerá no console dev)
Como o Felix mencionou,
each()
está apenas iterando o array, nada mais.fonte
Converter de Array em String é tão fácil!
É isso. Agora A é uma string. :)
fonte
[1,2,[3]].toString()
, você obterá1,2,3
, o que é uma besteira. Essa resposta é apenas uma maneira pior de escrever a mesma chamada para o mesmo método de string nativo quebrado. 42 votos positivos ??['Sunday','Monday','Tuesday','Wednesday','Thursday'].join('');
Array.join()
é definitivamente a melhor opção, já que não vai simplesmente concatenar valores com vírgulas, mas permite ao usuário determinar como a concatenação deve ser feita. Você pode usar vírgula + espaço em branco, por exemplo.Você pode usar
.toString()
para unir uma matriz com uma vírgula.Ou defina o separador com
array.join('; '); // result: a; b; c
.fonte
não tenho certeza se é isso que você queria, mas
Isso resulta na seguinte saída:
fonte
Quatro métodos para converter uma matriz em uma string.
Coagir para uma corda
Chamando
.toString()
Unindo explicitamente usando
.join()
Você pode usar outros separadores, por exemplo,
', '
Usando
JSON.stringify()
Isso é mais limpo, pois cita strings dentro do array e trata os arrays aninhados corretamente.
fonte
jQuery.each
está apenas fazendo um loop no array, não faz nada com o valor de retorno ∆ . Você está procurandojQuery.map
(também acho queget()
é desnecessário, pois você não está lidando com objetos jQuery):DEMO
Mas por que usar jQuery neste caso?
map
apenas introduz uma chamada de função desnecessária por elemento.Nota: Ele apenas usa o valor de retorno se deve continuar a fazer o loop sobre os elementos ou não. Retornar um valor "falso" interromperá o loop.
fonte
map
sevalue
for um objeto jQuery. E então você deve usarvalue.map(...).get()
. Mas se você tem apenas uma matriz de objetos jQuery, não precisaget
. De nada :)Use
join()
e o separador.Exemplo de trabalho
fonte
esta é minha função, converter objeto ou array para json
acabei de editar para v0.2 ^. ^
fonte
Eu precisava de um array para se tornar uma representação de String de um array. Quer dizer, eu precisava disso
talvez alguém precise :)
fonte
OU
fonte
converter uma matriz em uma string de parâmetro GET que pode ser anexada a um url pode ser feito da seguinte maneira
chame esta função como
qual encaminhará o usuário para o / site / search? página com os parâmetros get delineados na matriz fornecida para encodeGet.
fonte
Não deve confundir Array's com Listas ... Esta é uma lista: {...} e não tem comprimento, ou outras propriedades de Array.
Este é um Array: [...] e você pode usar funções de array, métodos e assim, como alguém sugeriu aqui: someArray.toString ();
"someObj.toString ();" simplesmente não funcionará em nenhum outro tipo de objeto, como Listas. ;-)
fonte
Array.prototype.toString ()
O método toString () retorna uma string que representa a matriz especificada e seus elementos.
Sintaxe
Valor de retorno
Uma string que representa os elementos da matriz.
Para maiores informações :
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/toString
fonte
Aqui está um exemplo usando funções de sublinhado.
O resultado final seria "moe, larry, curly"
fonte