第54回【JavaScript】配列の順序の反転

現在取り組んでいるのは、paiza ラーニング問題集「配列活用メニュー」になります。

はじめに

猫とキャンプと野球観戦と AWS が大好きな旦那、LeoSaki です。モフモフしたい。

JavaScript をゼロから勉強してみよう、のコーナー 54 回目です。

ルナちゃんは横で寝るときも膝に乗るときも、必ずどこかに足を掛けたり枕替わりにしたりします。レオくんは綺麗にスポッと収まってくれます。そのため、ルナちゃんよりもレオくんの方が甘え上手と言えるでしょう。まぁ、体重はルナちゃんの倍以上あるので、結局、しんどいんですけれど。

それでは、今日も頑張ってみようと思います。

配列の順序の反転 (paizaランク D 相当)

配列 A の要素数 N と配列 A の各要素 A_1, A_2, …, A_N が与えられるので、A の要素の順序を逆にした配列 B を作成し、出力してください。


入力される値

N
A_1
...
A_N

・1 行目では、配列 A の要素数 N が与えられます。
・続く N 行では、配列 A の要素が先頭から順に与えられます。

入力値最終行の末尾に改行が1つ入ります。


期待する出力

B_1
...
B_N

A の要素の前後を逆にした配列 B を以上の形式で出力してください。

また、末尾に改行を入れ、余計な文字、空行を含んではいけません。


すべてのテストケースにおいて、以下の条件をみたします。

・1 ≦ N ≦ 100
・-100 ≦ A_i ≦ 100 (1 ≦ i ≦ N)


入力例

5
1
2
3
4
5

出力例

5
4
3
2
1

Python だとすぐに思いつくのだけれど、JavaScript ではどうやって書けばいいんだろう。

JavaScript
process.stdin.resume();
process.stdin.setEncoding('utf8');

var lines = [];
var reader = require('readline').createInterface({
  input: process.stdin,
  output: process.stdout
});
reader.on('line', (line) => {
  lines.push(line);
});
reader.on('close', () => {
  const n = Number(lines[0]);
  const A = [];
  for (let i = 1; i <= n; i++) {
      A.push(Number(lines[i]));
  }
  const B = A.reverse();
  for (let i = 0; i < n; i++) {
      console.log(B[i]);
  }
});
Python
N = int(input())
A = [int(input()) for _ in range(N)]
B = [0]*N
i = 0
for a in A[::-1]:
    B[i] = a
    i += 1
print(*B,sep="\n")

最後に

reverse() で簡単に配列の逆順を作ることができる。なんだかとても便利だ。しかし、問題文通り、逆順の配列 B を作成したのだけれど、配列を作成する際に、変数の宣言 const をつけるっていうのが、未だに慣れない。

変数宣言を突き詰めていくと、結局、何が正解だかわからなくなる。LeoSaki(旦那)は、先頭でまとめて宣言を行ったうえで、型も意識しておく方が好き、というか安心できる。

引き続き、よろしくお願いいたします!

Python の第54回はこちら