標準入力メニュー【改行区切りでのN個の文字列の入力・1 行目で与えられるN個の文字列の入力 ほか】
【STEP: 1】コード (1)
reader.on('close', () => {
const N = Number(lines[0]); // 要素数
for(let i = 1; i <= N; i++){
const s = lines[i]; // N 個の 要素を s で受け取り
console.log(s); // 表示
}
});
for文で N 個 の文字列を s で受け取りながら 同時進行で出力しています。
【STEP: 1】コード(2)
reader.on('close', () => {
const N = Number(lines[0]);
const S = new Array(N); // 要素数 N 個 の配列
for (let i = 0; i < N; i++) {
const s = lines[i + 1]; // s で入力値を受け取り
S[i] = s; // S[i] の値として保存
}
S.forEach(s => {
console.log(s);
});
});
要素数 N 個 の配列 S を宣言して for文で各値を受け取り S に代入。forEach()
で出力しました。
【STEP: 2】コード(1)
reader.on('close', () => {
const N = Number(lines[0]); // 1 行目の入力値(要素数)
const S = lines[1].split(' '); // 2 行目の入力値を(' ')区切りの配列に変換
for (let i = 0; i < N; i++) {
console.log(S[i]); // N 個の要素を表示
}
});
lines[1]
を半角スペース区切りの配列 に変換し S に保存。for文 で N 個の値を出力しています。
【STEP: 2】コード(2)
reader.on('close', () => {
const S = lines[1].split(' ');
S.forEach(s => {
console.log(s);
});
});
各値を forEach()
で出力したので 要素数 N は取得せずに 配列 S のみを生成しています。
【STEP: 3】コード (1)
reader.on('close', () => {
const S = lines[0].split(' ');
const N = Number(S.shift()); // S の先頭の値を切り取り、数値化して N に代入
for (let i = 0; i < N; i++) {
console.log(S[i]); // S の各値を出力
}
});
入力は1行なので とりあえず半角スペース区切りの配列 に変換して S に保存。S の先頭の値を切り取り 数値化して N に代入。for文 で N 個 の S の値を出力しました。
【STEP: 3】コード (2)
reader.on('close', () => {
const S = lines[0].split(' ');
S.shift(); // S の先頭の値を削除
S.forEach(s => {
console.log(s); // S の各値を出力
});
});
forEach()
を使えば配列の要素数に関わらず、全ての値にアクセスできるので、要素数 N を生成しなくても全ての値を出力できました。
【STEP: 4】コード (1)
reader.on('close', () => {
const N = Number(lines[0]);
const S = lines[1].split(' ');
for (let i = 0; i < N; i++) {
console.log(S[i]);
}
});
入力条件が変わってますけど 【STEP: 2】のコードと同じでOKでした。
【STEP: 4】コード (2)
reader.on('close', () => {
const S = lines[1].split(' ');
S.forEach(s => {
console.log(s);
});
});
こちらも【STEP: 2】のコードと同じです。
【FINAL】コード (1)
reader.on('close', () => {
const S = lines[0].split(' ');
const N = Number(S.shift());
for (let i = 0; i < N; i++) {
console.log(S[i]);
}
});
【STEP: 3 】と同じコードで問題なく動作しました。
【FINAL】コード (2)
reader.on('close', () => {
const S = lines[0].split(' ');
S.shift();
S.forEach(s => {
console.log(s);
});
});
こちらも【STEP: 3】のコードと同じです。
コメント