Estoy tratando de iterar sobre una lista de "valores" y convertirla en una cadena. Aquí está el código:
var blkstr = $.each(value, function(idx2,val2) {
var str = idx2 + ":" + val2;
alert(str);
return str;
}).get().join(", ");
La función alert () funciona bien y muestra el valor adecuado. Pero de alguna manera, la función .get () de jquery no obtiene el tipo correcto de objeto y falla. ¿Qué estoy haciendo mal?
Respuestas:
Si
value
es una matriz asociativa, dicho código funcionará bien:(la salida aparecerá en la consola de desarrollo)
Como mencionó Felix,
each()
solo está iterando la matriz, nada más.fuente
¡Convertir de matriz a cadena es muy fácil!
Eso es todo. Ahora A es una cuerda. :)
fuente
[1,2,[3]].toString()
, lo conseguirá1,2,3
, lo cual es bastante basura. Esta respuesta es solo una forma peor de escribir la misma llamada al mismo método de cadena nativo roto. 42 votos a favor['Sunday','Monday','Tuesday','Wednesday','Thursday'].join('');
Array.join()
es definitivamente la mejor opción, ya que no se limitará a concatenar valores con comas, sino que permitirá al usuario determinar cómo se debe realizar la concatenación. Podría usar coma + espacio en blanco, por ejemplo.Puede usar
.toString()
para unir una matriz con una coma.O configure el separador con
array.join('; '); // result: a; b; c
.fuente
No estoy seguro si esto es lo que querías pero
Esto da como resultado el siguiente resultado:
fuente
Cuatro métodos para convertir una matriz en una cadena.
Coaccionando a una cuerda
Vocación
.toString()
Unirse explícitamente usando
.join()
Puede utilizar otros separadores, por ejemplo,
', '
Utilizando
JSON.stringify()
Esto es más limpio, ya que cita cadenas dentro de la matriz y maneja las matrices anidadas correctamente.
fuente
jQuery.each
simplemente está recorriendo la matriz, no hace nada con el valor de retorno ∆ . Está buscandojQuery.map
(también creo queget()
es innecesario ya que no está tratando con objetos jQuery):MANIFESTACIÓN
Pero, ¿por qué usar jQuery en este caso?
map
solo introduce una llamada de función innecesaria por elemento.∆: Solo usa el valor de retorno si debe continuar recorriendo los elementos o no. Devolver un valor "falso" detendrá el ciclo.
fuente
map
sivalue
es un objeto jQuery. Y luego deberías usarvalue.map(...).get()
. Pero si solo tiene una matriz de objetos jQuery, entonces no necesitaget
. De nada :)Utilice
join()
y el separador.Ejemplo de trabajo
fuente
esta es mi función, convertir objeto o matriz a json
acabo de editar a v0.2 ^. ^
fuente
Necesitaba una matriz para convertirme en una representación de cadena de una matriz, quiero decir, necesitaba eso
tal vez alguien lo necesite :)
fuente
O
fuente
convertir una matriz en una cadena de parámetros GET que se puede agregar a una URL se puede hacer de la siguiente manera
llamar a esta función como
que reenviará al usuario a / site / search? página con los parámetros de obtención descritos en la matriz dada a encodeGet.
fuente
No debería confundir Array con Lists ... Esta es una lista: {...} y no tiene longitud, ni tiene otras propiedades de Array.
Esta es una matriz: [...] y puede usar funciones de matriz, métodos y demás, como alguien sugirió aquí: someArray.toString ();
"someObj.toString ();" simplemente no funcionará en ningún otro tipo de objeto, como Listas. ;-)
fuente
Array.prototype.toString ()
El método toString () devuelve una cadena que representa la matriz especificada y sus elementos.
Sintaxis
Valor devuelto
Cadena que representa los elementos de la matriz.
para más información :
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/toString
fuente
Aquí hay un ejemplo con funciones de subrayado.
El resultado final sería "moe, larry, curly"
fuente