javascript
1var array = ["1","2","3","4","5","6"] 2var nums = [ 7,8,9,10,11,12] 3var arraynum = array.concat(nums+"");
.やりたい事
concatを使って2つの配列を結合して新しい配列をつくりたい。
結合したときに文字列か数字どちらか同じレベルにしたいのですが
うまくいきません。toStringが必要…?
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答4件
0
別回答で、mapメソッドで変換してから、concat する方法が提示されましたが、
2つの要素を concat してから、 map Type をあわせてもよいです。
node
1var numsA = ["1", "2", "3", "4", "5", "6"]; 2var numsB = [7, 8, 9, 10, 11, 12]; 3 4var newArrayA = numsA.concat(numsB.map(o => o.toString())); 5var newArrayB = numsA.map(o => parseInt(o)).concat(numsB); 6console.log(newArrayA); // 文字列 7console.log(newArrayB); // 数値 8 9console.log(numsA.concat(numsB).map(x => parseInt(x))); 10console.log(numsA.concat(numsB).map(x => x.toString()));
投稿2018/10/25 14:18
総合スコア22324
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2018/10/25 14:20
0
配列の要素をmapメソッドで変換してから、concatすればよいです。
javascript
1<script> 2 var numsA = ["1", "2", "3", "4", "5", "6"]; 3 var numsB = [7, 8, 9, 10, 11, 12]; 4 var newArrayA = numsA.concat(numsB.map(o => o.toString())); 5 var newArrayB = numsA.map(o => parseInt(o)).concat(numsB); 6 console.log(newArrayA); // 文字列 7 console.log(newArrayB); // 数値 8</script>
投稿2018/10/25 13:26
退会済みユーザー
総合スコア0
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
ベストアンサー
こんにちは。
他の回答者様からの回答のように、toString や、parseIntを使って変換するのが、正当な方法だと思います。その上で、以下も数字の文字列と整数との変換について、「こんなことも出来る」程度に覚えておくとよいかもしれません。
- 整数の
100
から文字列"100"
への変換:
javascript
1var num1 = 100; 2var str1 = '' + num1; 3 4console.log(str1); // => "100" 5console.log(typeof str1); // string
- 文字列
"200"
から、整数の200
へ変換
javascript
1var str2 = '200'; 2var num2 = +str2; 3 4console.log(num2); // => 200 5console.log(typeof num2); // => number
以下は上記のサンプルです。
これを使うと、ご質問の回答は、以下のようにも書けます。( concat してから型を揃えるようにしました。)
javascript
1var strAry = ["1", "2", "3", "4", "5", "6"]; 2var intAry = [7, 8, 9, 10, 11, 12]; 3 4var ary = strAry.concat(intAry); 5 6console.log(ary); // => ["1", "2", "3", "4", "5", "6", 7, 8, 9, 10, 11, 12] 7 8var ary1 = ary.map(e => '' + e); 9 10console.log(ary1); // => ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12"] 11 12var ary2 = ary.map(e => +e); 13 14console.log(ary2); // => [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]
以下は、上記のサンプルです。
以上、参考になれば幸いです。
追記
数値の 100
から、文字列の "100"
を作るには、もうひとつ、以下があります。
javascript
1var num = 100; 2 3var str = `${num}`; 4 5console.log(str); // => 100 6 7console.log(typeof str); // => string
投稿2018/10/25 14:24
編集2018/10/25 14:29総合スコア9058
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。