Konvertieren Sie ein Integer-Array in ein String-Array in JavaScript
Lesezeit: 2 Minuten
gihansalith
Ich habe ein Array wie folgt:
var sphValues = [1, 2, 3, 4, 5];
dann muss ich das obige 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.
sphValues.map(String)
– Elclans
29. Oktober 2014 um 6:45 Uhr
@elclanrs Sie sollten das als Antwort und nicht als Kommentar posten
– Herr Alien
29. Oktober 2014 um 6:47 Uhr
[1,2,3,4,5].toString().split(",")
– Herr Green
29. Oktober 2014 um 6:48 Uhr
@SonalPM Sie sollten auf Markdown verweisen, da es Ihnen schwer fällt, einen Kommentar mit einem Link zu posten, da Sie Ihren Kommentar 4 Mal gepostet und gelöscht haben, jetzt 5
– Herr Alien
29. Oktober 2014 um 6:49 Uhr
Elclans
Sie können verwenden Karte und passieren die Schnur Konstruktor als Funktion, die jede Zahl in einen String umwandelt:
sphValues.map(String) //=> ['1','2','3','4','5']
Dadurch werden sphValues nicht mutiert. Es wird ein neues Array zurückgegeben.
Für ältere Browser, die Array.map nicht unterstützen, können Sie underscore.js verwenden: _.map(sphValues, String)
– Jonas Anseeuw
8. Juli 2015 um 9:35 Uhr
Leider werden dadurch auch Booleans in Strings konvertiert.
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 zu verwenden arr.map(String); wie @elclanrs in den Kommentaren erwähnt.
for(var i = 0; i < sphValues.length; i += 1){
sphValues[i] = '' + sphValues[i];
}
Verwenden .map() In diesem Kontext ist das ein besserer Schritt, und Sie können es wie den folgenden Code tun, dies würde Ihrem Code mehr Lesbarkeit verleihen.
sphValues.map(convertAsString);
function convertAsString(val) {
return val.toString();
}
ES6-Lösung
const nums = [1, 2, 3, 4, 5, 10];
// bugfix: the `10` edge case
const strs = Array.from(nums, x => `${x}`);
console.log(strs);
// ['1', '2', '3', '4', '5', '10']
sphValues.map(String)
– Elclans
29. Oktober 2014 um 6:45 Uhr
@elclanrs Sie sollten das als Antwort und nicht als Kommentar posten
– Herr Alien
29. Oktober 2014 um 6:47 Uhr
[1,2,3,4,5].toString().split(",")
– Herr Green
29. Oktober 2014 um 6:48 Uhr
@SonalPM Sie sollten auf Markdown verweisen, da es Ihnen schwer fällt, einen Kommentar mit einem Link zu posten, da Sie Ihren Kommentar 4 Mal gepostet und gelöscht haben, jetzt 5
– Herr Alien
29. Oktober 2014 um 6:49 Uhr