質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.31%
JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

2回答

1121閲覧

javascript 標準入力を取得し、計算する。

pancerkit066

総合スコア10

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

1クリップ

投稿2019/03/22 04:25

前提・実現したいこと

標準入力値を取得後、計算し30点以上のものだけを表示したい。
標準入力値フォーマット)
array[0] 5 30 //5=検査人数   30=合格点をあらわしている。
array[1] 70 40 //左値は、得点   右値は、減点の値です。
array[2] 40 20
array[3] 60 20
array[4] 30 0
array[5] 40 20 //

**発生している問題・エラーメッセージ

 var kekka=syutoku[i].split('a b'); ※splitのs付近で▴マークがでます。         

該当のソースコード

javascript

process.stdin.resume(); process.stdin.setEncoding('utf8'); var syutoku = []; var teigi = require('readline').createInterface({ input: process.stdin, output: process.stdout }); teigi.on('base', (base) => { syutoku.push(base); }); teigi.on('close', () => { for(var i=1;i<=syutoku.length;i++){ var kekka=syutoku[i].split('a b'); //半角スペースで区切ってます。 console.log(kekka);

}
});

試したこと

何とか標準入力値を取得できたのですが配列[1][5]をsplit('a b')の中身を使って('a b')を計算したいのですができません。とりあえず出力画面には、配列の[1][5]の数は、取得できました。
['70 40']
['40 20']
['60 20']
['30 0']
['40 20']
例えば配列[1]の'a'が70で'b'が40で('a'-'b')を計算し、その後に30点以上を満たしている配列だけ
を出力したいのです。上記の場合、配列[1],[3],[4]をconsole.logで出力したい。

 

##環境構築は有料サービスを使っているので特に問題なさそうです。
クラウドIDE

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

pancerkit066

2019/03/22 04:33

わかりました。 ちなみにvar syutoku➔var arrayでしたすみません。
m.ts10806

2019/03/22 04:34

質問は編集できますので適宜ご対応いただければと。
miyabi-sun

2019/03/22 04:39

JavaScriptはそもそもChrome等のブラウザ上でしか動かないスクリプト言語です。 HTML(DOMツリー)を後付けで書き換えるのが主目的の言語です。 なので標準入力という概念がありません。 `process.stdin`というメソッドの使い方から見て、Node.jsだろうと思うのですが合ってますか? そしてPiazaのクイズっぽさを感じます。 もしPaizaならば、クイズは利用規約で外部へ持ち出して質問することを禁止しているはずですが、これは持ち出しても良いコンテンツなのでしょうか? 一度規約等の確認をお願いします。
guest

回答2

0

javascript

1process.stdin.resume(); 2process.stdin.setEncoding('utf8'); 3 4var syutoku = []; 5var teigi = require('readline').createInterface({ 6 input: process.stdin, 7 output: process.stdout 8}); 9teigi.on('line', (base) => { //環境の都合かと思いますが、ここをlineにしました。 10 syutoku.push(base.split(' ')); 11}); 12teigi.on('close', () => { 13 const threshold = syutoku[0][1]; 14 for(var i=1;i<syutoku.length;i++){ 15 if((syutoku[i][0] - syutoku[i][1]) < threshold) continue; 16 console.log(syutoku[i]); 17 } 18});

投稿2019/03/25 01:27

papinianus

総合スコア12705

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

いくつか気になる点があるのでそこだけ書きます。

var kekka=syutoku[i].split('a b'); ですが、 split() の引数は区切り文字なので
var kekka=syutoku[i].split(' '); が正しいように思えます。

また、
for(var i=1;i<=syutoku.length;i++){ という記述ですが、 syutoku.lengthは6が返ります。
そのため、この記述では、 syutoku[6] にアクセスしてしまいます。

気になった点は以上です。

投稿2019/03/23 19:41

YakumoSaki

総合スコア2027

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.31%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問