Konvertieren Sie ein Integer-Array in ein String-Array in JavaScript

85

Ich habe ein Array wie unten:

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

dann muss ich über Array wie folgt konvertieren:

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

Wie kann ich konvertieren? Ich habe dies für die automatische Vervollständigung verwendet.

Gihansalith
quelle
26
sphValues.map(String)
Elclanrs
6
@elclanrs Sie sollten das als Antwort und nicht als Kommentar posten
Mr. Alien
7
[1,2,3,4,5].toString().split(",")
Mr_Green
1
@SonalPM Sie sollten Markdown verweisen, da es Ihnen schwer fällt, einen Kommentar mit einem Link zu veröffentlichen, da Sie Ihren Kommentar 4 Mal gepostet und gelöscht haben, jetzt 5
Mr. Alien

Antworten:

196

Sie können map verwenden und den String- Konstruktor als Funktion übergeben, die jede Zahl in einen String verwandelt:

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

Dadurch werden sphValues ​​nicht mutiert. Es wird ein neues Array zurückgegeben.

elclanrs
quelle
6
Ich verstehe nicht, warum dies nicht als Antwort akzeptiert wurde
MarsOne
3
Für ältere Browser, die Array.map nicht unterstützen, können Sie underscore.js verwenden: _.map (sphValues, String)
Jonas Anseeuw
Leider werden dadurch auch Boolesche Werte in Zeichenfolgen konvertiert.
Dev
10

nur mit Array-Methoden

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

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

Bearbeiten:
Besser arr.map(String);als @elclanrs in den Kommentaren erwähnt zu verwenden.

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

Verwenden Sie .map()in diesem Kontext einen besseren Schritt, und Sie können den folgenden Code wie folgt verwenden, um die Lesbarkeit Ihres Codes zu verbessern.

sphValues.map(convertAsString);

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

Sie können diese Methode für die automatische Vervollständigung verwenden. Ich denke, Ihr Problem wird gelöst, aber es wird nicht konvertieren, wie Sie wollen, es wird konvertieren, wie

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

Sie können einfach ein '' anhängen, um es in einen Zeichenfolgentyp zu konvertieren.

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

ES6-Lösung

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

xgqfrms
quelle