Convierta una matriz de enteros en una matriz de cadenas en JavaScript


85

Tengo una matriz como la siguiente:

var sphValues = [1, 2, 3, 4, 5];

entonces necesito convertir la matriz anterior como la siguiente:

var sphValues = ['1', '2', '3', '4', '5'];

¿Cómo puedo convertir? Usé esto para autocompletar.


26
sphValues.map(String)
elclanrs

6
@elclanrs Deberías publicar eso como una respuesta y no como un comentario
Mr. Alien

7
[1,2,3,4,5].toString().split(",")
Mr_Green

1
@SonalPM Debe referirse a Markdown ya que está teniendo dificultades para publicar un comentario con un enlace, porque publicó y eliminó su comentario 4 veces, ahora 5
Mr. Alien

Respuestas:


196

Puede usar map y pasar el constructor String como una función, que convertirá cada número en una cadena:

sphValues.map(String) //=> ['1','2','3','4','5']

Esto no mutará sphValues. Devolverá una nueva matriz.


6
No entiendo por qué esto no ha sido aceptado como respuesta
MarsOne

3
Para los navegadores más antiguos que no admiten Array.map, puede usar underscore.js: _.map (sphValues, String)
Jonas Anseeuw

Desafortunadamente, esto también convertirá los valores booleanos en cadenas.
Dev hace

10

solo usando métodos de matriz

var sphValues = [1,2,3,4,5];   // [1,2,3,4,5] 
sphValues.join().split(',')    // ["1", "2", "3", "4", "5"]

9

Utilizar Array.map:

var arr = [1,2,3,4,5];
var strArr = arr.map(function(e){return e.toString()});
console.log(strArr); //["1", "2", "3", "4", "5"] 

Editar: es
mejor usarlo arr.map(String);como @elclanrs mencionado en los comentarios.


6
for(var i = 0; i < sphValues.length; i += 1){
    sphValues[i] = '' + sphValues[i];
}

6

Úselo .map()en este contexto que es un movimiento mejor, así como puede hacer como el código a continuación, esto agregaría más legibilidad a su código,

sphValues.map(convertAsString);

function convertAsString(val) {
  return val.toString();
}

3
 var value;
 for (var i = 0; i < data3.sph.length; i++) {
     value = data3.sph[i];
     //sphValues[i] = data3.sph[i];
     var obj = {
         label: value
     };
     sphValues.push(obj);
 }

Puede utilizar este método para completar automáticamente. Creo que tu problema se resolverá, pero no se convertirá como quieres, se convertirá como

["label": "val1", "label": "val2"]

2

simplemente puede agregar un '' para convertirlo en un tipo de cadena.

var sphValues = [1,2,3,4,5];
for(var itr = 0; itr<sphValues.length;itr++){
  sphValues[itr] = '' + sphValues[itr];
}

1

Solución ES6

const nums = [1, 2, 3, 4, 5];
const strs = Array.from(nums.join(``));
console.log(strs);

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.