JavaScriptで整数配列を文字列配列に変換する


88

私は以下のような配列を持っています:

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

次に、上記の配列を以下のように変換する必要があります。

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

どうすれば変換できますか?これをオートコンプリートに使用しました。


27
sphValues.map(String)
elclanrs 2014年

6
@elclanrsコメントではなく回答として投稿する必要があります
エイリアン氏

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

1
@SonalPMリンク付きのコメントを投稿するのに苦労しているので、マークダウンを参照する必要があります。コメントを投稿および削除したのは4回、現在は5
エイリアン氏

回答:


201

mapを使用して、Stringコンストラクターを関数として渡すことができます。これにより、各数値が文字列に変換されます。

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

これはsphValuesを変更しません。新しい配列を返します。


6
なぜこれが答えとして受け入れられなかったのか理解できません
MarsOne 2014年

3
Array.mapをサポートしていない古いブラウザの場合は、underscore.jsを使用できます。_。map(sphValues、String)
Jonas Anseeuw 2015

残念ながら、これはブール値も文字列に変換します。
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"] 

編集:コメントで言及されている@elclanrsとして
使用する方が良いarr.map(String);です。




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

1

ES6ソリューション

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

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.