Преобразование целочисленного массива в массив строк в JavaScript

88

У меня есть массив, как показано ниже:

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

то мне нужно преобразовать вышеупомянутый массив, как показано ниже:

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

Как я могу конвертировать? Я использовал это для автозаполнения.

Gihansalith
источник
27
sphValues.map(String)
elclanrs
6
@elclanrs Вы должны опубликовать это как ответ, а не комментарий
Мистер Чужой
7
[1,2,3,4,5].toString().split(",")
Mr_Green
1
@SonalPM Вы должны сослаться на уценку, так как вам трудно опубликовать комментарий со ссылкой, потому что вы опубликовали и удалили свой комментарий 4 раза, теперь 5
Мистер Чужой

Ответы:

201

Вы можете использовать map и передать конструктор String как функцию, которая превратит каждое число в строку:

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

Это не приведет к изменению sphValues. Он вернет новый массив.

Elclanrs
источник
6
Я не понимаю, почему это не было принято в качестве ответа
MarsOne
3
Для старых браузеров, которые не поддерживают Array.map, вы можете использовать underscore.js: _.map (sphValues, String)
Йонас Ансиув 08
К сожалению, это также преобразует логические значения в строки.
Dev
10

Использование 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"] 

Изменить:
лучше использовать arr.map(String);как @elclanrs, упомянутые в комментариях.

Амир Попович
источник
10

просто используя методы массива

var sphValues = [1,2,3,4,5];   // [1,2,3,4,5] 
sphValues.join().split(',')    // ["1", "2", "3", "4", "5"]
Скипер Скипрович
источник
6
for(var i = 0; i < sphValues.length; i += 1){
    sphValues[i] = '' + sphValues[i];
}
Анарион
источник
6

Используйте .map()в этом контексте, что это лучший ход, а также вы можете сделать как в приведенном ниже коде, это добавит больше читаемости вашему коду,

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);
 }

Вы можете использовать этот метод для автозаполнения. Я думаю, ваша проблема будет решена, но он не будет преобразовывать так, как вы хотите, он будет преобразовывать как

["label": "val1", "label": "val2"]
Саранга
источник
2

вы можете просто добавить "", чтобы преобразовать его в строковый тип.

var sphValues = [1,2,3,4,5];
for(var itr = 0; itr<sphValues.length;itr++){
  sphValues[itr] = '' + sphValues[itr];
}
Эканш Растоги
источник