標準出力メニュー【カンマ区切りで10個出力・半角スペースとバーティカルライン区切りで10個出力・大きな数値を3けたごとにカンマ区切りで出力 ほか】
【STEP: 1】コード
reader.on('close', () => {
const [M, N] = lines[0].split(' ').map(Number);
console.log([M, N].join(','));
});
join(',')
を使って 2つの配列の要素を″,″で結合。
【STEP: 2】コード
reader.on('close', () => {
const S = []; // 3 つの入力値を受け取る配列
for (let i = 0; i < 3; i++) {
S.push(lines[i]); // S に入力値を保存
}
console.log(S.join('|')); // 配列の値を'|'で結合
});
改行区切りの入力値を for文 を使って S に保存。出力時に join('|')
で結合しています。
【STEP: 3】コード
reader.on('close', () => {
const N = lines[0].split(' ').map(Number);
console.log(N.join(',') + ',');
});
split(' ').map(Number)
で 入力値を半角スペース区切りの数値の配列に変換。末尾にも″,″が必要なので 出力時に + 演算子で追加しました。 (^^;
【STEP: 4】コード (1)
reader.on('close', () => {
const N = lines[0].split(' ').map(Number);
console.log(N.join(','));
});
【STEP: 3】とほぼ同じです。出力時の + ','
を削っただけ。
【STEP: 5】コード
reader.on('close', () => {
const N =[];
for (let i = 0; i < 10; i++) {
N.push(Number(lines[i]));
}
console.log(N.join(' | '));
});
入力をNに保存し 出力時にjoin(' | ')
で結合。
【STEP: 6】コード
reader.on('close', () => {
const N = lines[0];
const M = []; // 3桁毎の値を保存する配列
for (let i = 0; i < N.length - 2; i += 3) {
M.push(N.substring(i, i + 3)); // 値を 3桁 ずつ切り取り M に保存
}
console.log(M.join(','));
});
カウンタ変数 i が 3 ずつ増加する for文 で値を3桁ずつ抜き出して M に保存。出力時に join(',')
で連結。
【FINAL】コード
reader.on('close', () => {
const N = lines[0];
const M = []; // 3桁毎の値を保存する配列
const R = N.length % 3; // 3桁区切りの端数
if(R) { // 端数が 1 または 2 なら…
M.push(N.substring(0, R)); // 数列の先頭から 端数分 抜き出して M に保存
}
for (let i = 0 + R; i < N.length - 2; i +=3) {
M.push(N.substring(i, i + 3));
}
console.log(M.join(','));
});
桁数を3で割った余りが 1 または 2 であれば 先ず 先頭から 端数分(R個)の値を抜き出し M に保存。ループは 0 + R から開始すればうまくいきました。
コメント