Перетворити цілочисельний масив на масив рядків у JavaScript


85

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

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

тоді мені потрібно перетворити масив вище, як показано нижче:

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

Як я можу конвертувати? Я використав це для автозаповнення.


26
sphValues.map(String)
elclanrs

6
@elclanrs Ви повинні опублікувати це як відповідь, а не як коментар
містер

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

1
@SonalPM Ви повинні посилатися на знижку, оскільки вам важко опублікувати коментар із посиланням, тому що ви розміщували та видаляли свій коментар 4 рази, зараз 5
містер Еліен

Відповіді:


196

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

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

Це не змінить значення sphValues. Він поверне новий масив.


6
Я не розумію, чому це не сприйнято як відповідь
MarsOne

3
Для старих браузерів, які не підтримують Array.map, ви можете використовувати underscore.js: _.map (sphValues, String)
Jonas Anseeuw

На жаль, це також перетворить логічні значення в рядки.
Розробник


9

Використання 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, згадані в коментарях.



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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.