Converter array de inteiros em array de string em JavaScript

88

Eu tenho uma matriz como abaixo:

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

então eu preciso converter a matriz acima como abaixo:

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

Como posso converter? Usei isso para autocompletar.

Gihansalith
fonte
27
sphValues.map(String)
elclanrs
6
@elclanrs Você deve postar isso como uma resposta e não como um comentário
Sr. Alien,
7
[1,2,3,4,5].toString().split(",")
Mr_Green,
1
@SonalPM Você deve referir o markdown, pois está tendo dificuldade para postar um comentário com um link, porque você postou e excluiu seu comentário 4 vezes, agora 5
Sr. Alien

Respostas:

201

Você pode usar map e passar o construtor String como uma função, que transformará cada número em uma string:

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

Isso não causará mutação em sphValues. Ele retornará uma nova matriz.

elclanrs
fonte
6
Não entendo por que isso não foi aceito como resposta
MarsOne
3
Para navegadores mais antigos que não oferecem suporte a Array.map, você pode usar underscore.js: _.map (sphValues, String)
Jonas Anseeuw
Infelizmente, isso também converterá booleanos em strings.
Dev
10

Use 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"] 

Edit:
Melhor usar arr.map(String);como @elclanrs mencionado nos comentários.

Amir Popovich
fonte
10

apenas usando métodos de array

var sphValues = [1,2,3,4,5];   // [1,2,3,4,5] 
sphValues.join().split(',')    // ["1", "2", "3", "4", "5"]
Skiper Skiprovic
fonte
6
for(var i = 0; i < sphValues.length; i += 1){
    sphValues[i] = '' + sphValues[i];
}
Anarion
fonte
6

Use .map()neste contexto que é uma jogada melhor, assim como você pode fazer como o código abaixo, isso adicionaria mais legibilidade ao seu código,

sphValues.map(convertAsString);

function convertAsString(val) {
  return val.toString();
}
Rajaprabhu Aravindasamy
fonte
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);
 }

Você pode usar este método para preenchimento automático. Acho que seu problema será resolvido, mas não vai converter como você quer, vai converter como

["label": "val1", "label": "val2"]
Saranga
fonte
2

você pode apenas anexar um '' para convertê-lo em um tipo de string.

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

Solução ES6

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

xgqfrms
fonte