お世話になっております。
今JavaScriptの勉強のために「独習JavaScript」を進めています。
練習問題で分からないことが出てきたので質問させてください。
Q. 配列dataがあるとする。
この配列要素のうち、数値のみ合計値を計算し、アラートダイアログに表示させるプログラムをfor/in文を利用して作成しなさい。
A.
JavaScript
1var data = [1, 4, 5, 'string', 8] //配列を変数dataに格納 2var sum = 0; //sumという変数を作って初期値0を格納 3for (var num in data) { //dataという配列オブジェクトのプロパティを順に変数に格納 4 if (typeof data[num] == 'number') { //配列のプロパティのデータ型が数値の場合 5 console.log(data[num]); //1, 4, 5, 8と出力されることを確認 6 sum += data[num]; //変数sum(0)にプロパティを順に足していく 7 } 8} 9alert(sum); //18
配列はconsoleで結果を確認するために私が適当に決めました。
答えについては上記のように理解は出来たのですが、
console.log(data[num]);
を間違えて
console.log(num);
と入力した際に、consoleには0, 1, 2, 4と表示されました。
index番号を取得してきているようです。
index番号を取得する場合はconsole.log(num.index);ではないのかなと思ったのですが、
逆に全てundefinedと返ってきてしまいました、、、
for/in文の中で配列のindex番号を全てconsoleに表示する場合は
for (変数名 in オブシェクト名) 文 において
console(変数名);
ということなのでしょうか、、?
かなり初歩的な質問で申し訳ないのですが、混乱してきてしまったのでどなたかご回答お願いいたしますm(_ _)m
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。