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

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

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

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

Q&A

解決済

1回答

618閲覧

javascriptで配列の中の文字列をつかってループさせたいです。

ghjkl

総合スコア1

JavaScript

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

0グッド

0クリップ

投稿2021/05/29 09:00

編集2021/05/29 09:33

前提・実現したいこと

javascriptで計算をするwebアプリを作ろうとしていますが、躓いてしまいました。

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

htmlは

html

1 2 <form name="frm1"> 3 <p>値1</p> 4 <input type="number" name ="a_1" value=0> 5 <p>値2</p> 6 <input type="number" name ="a_2" value=0> 7 8<form name="frm2"> 9 10 <p>サブ値1</p> 11 <input type="number" name ="b_1" value=0> 12 <p>サブ値2</p> 13 <input type="number" name ="b_2" value=0> 14 15<form name="frm3"> 16 17 <p合計1</p> 18 <input type="text" name="sum_1" value=0> 19 <p>合計2</p> 20 <input type="text" name="sum_2" value=0>

としていて、frm1とfrm2のインプットタグの中の値をfrm3のインプットタグに返す(値1+サブ値1 = 合計1)ように対応した処理をしたく、javascriptは

javascript

1 frm3.sum_1.value = (eval(frm1.a_1.value) + eval(frm2.b_1.value)); 2 frm3.sum_2.value = (eval(frm1.a_2.value) + eval(frm2.b_2.value)); 3

と書きました。
これだと問題なく処理できるのですが、同じような処理をこれ以外にも何回もするので配列を作成してループさせたいと思い試してみたところで躓いてしまいました。

実際に書いてみたものは

javascript

1 2var num =['1','2']; 3for (let i=0;i< num.length ;i++){ 4frm3.sum_num[i].value = (eval(frm1.a_num[i].value) + eval(frm2.b_num[i].value)); 5} 6

で、値の合計が返されません。
sum_num[i]の部分に問題があると思うのですが、どのようにして配列の中の文字を連結させればよいのでしょうか?

宜しくお願いします。

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

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

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

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

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

ghjkl

2021/05/29 09:34

ご指摘ありがとうございます。 提示して頂いたURLを参考に質問の方を編集させて頂きました。 まだまだ至らぬ点が多いと思いますがよろしくお願い申し上げます。
itagagaki

2021/05/29 10:14

> どのようにして配列の中の文字を連結させればよいのでしょうか? その配列は存在していますか?そうは見えないのですが。
guest

回答1

0

ベストアンサー

javascriptのオブジェクトの要素にアクセスする方法として、

js

1const a = { 2 b : "1", 3 c : "2", 4}

があるとすると、a.ba["b"]という2通りの方法でのアクセスが可能です。

前者の場合は、要素名は直接指定するため、変数等を用いて任意に変更することはできませんが、後者の場合は文字列で指定するため、任意の要素にアクセスすることが可能です。

前置きが長くなりましたが、frm3.sum_1にアクセスする方法はもう一つ、frm3["sum_1"]があり、数値の部分を変数に置き換えるとfrm3["sum_" + i](もしくはfrm3[`sum_${i}`])となります。

投稿2021/05/29 10:18

yuuyu

総合スコア1139

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

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

ghjkl

2021/05/29 13:10

アクセスの方法について丁寧なご回答ありがとうございます。 まさに自分が知りたかった要素名に変数名を指定する方法で、実際に実行してみたところ無事処理できました。 この度はありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問