第26回【JavaScript】要素数の出力、全要素の出力

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

はじめに

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

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

主に情報収集、たまに必要に迫られてウェビナーに参加します。知っている内容だけで終わってしまうものや、具体例がまったくなくふんわりと終わってしまうものも多いのが事実です。それでも、時々、体の芯が痺れるようなウェビナーを経験することがあります。終わった後にしばらく放心してしまうような。

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

要素数の出力 (paizaランク D 相当)

以下の二次元配列を宣言し、要素数を出力してください。

1 2 3 4 5 6
8 1 3 3 1 8

入力される値

入力は与えられません。

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


期待する出力

二次元配列の要素数を出力してください。

12

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


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

入力は与えられません。

二次元配列の要素数の求め方。Python のときの公式な解答を元に書いてみる。でも、逆に分かりにくい気がする・・・。

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 l = [[1, 2, 3, 4, 5, 6], [8, 1, 3, 1, 3, 8]];
  console.log(l.length * l[0].length);
});
Python
li = [[1, 2, 3, 4, 5, 6], [8, 1, 3, 1, 3, 8]]
print(len(li) * len(li[0]))

全要素の出力 (paizaランク D 相当)

以下の二次元配列を宣言し、全要素を各行ずつ半角スペース区切りで出力し、行の終わりで改行してください。

6 5 4 3 2 1
3 1 8 8 1 3

入力される値

入力は与えられません。

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


期待する出力

二次元配列の全要素を各行ずつ半角スペース区切りで出力し、行の終わりで改行してください。

6 5 4 3 2 1
3 1 8 8 1 3

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


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

入力は与えられません。

公式の解答に沿って考えてみる。しかし、JavaScript の公式の解答がないので、あっているかどうかはわからない。

JavaScript
const l = [[6, 5, 4, 3, 2, 1], [3, 1, 8, 8, 1, 3]];
for (let i = 0; i < l.length; i++) {
    const len = l[i].length;
    for (let j = 0; j < len; j++) {
        if (j == len - 1) {
            console.log(l[i][j]);
        } else {
            process.stdout.write(l[i][j] + ' ');
        }
    }
}
Python
li = [[6, 5, 4, 3, 2, 1], [3, 1, 8, 8, 1, 3]]
for i in range(len(li)):
    for j in range(len(li[i])):
        print(li[i][j], end="")
        if j < len(li[i]) - 1:
            print(end=" ")
        else:
            print()

最後に

process.stdout.write では、数字を直接渡すことは出来ない。最初、半角スペースを付け忘れていたので、Error が出て戸惑いました。すぐに気づくことが出来ないのはまだまだ勉強不足です。

二次元配列の扱いは、Python と同じなので、すんなり書くことが出来ました。基本的に、多次元の扱いについて JavaScript

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

Python の第26回はこちら