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

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

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

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

Q&A

2回答

894閲覧

JavaScript forの条件式を変数で定義したい

thiz

総合スコア2

JavaScript

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

0グッド

0クリップ

投稿2021/06/14 13:59

forの条件式を変数で定義するにはどうしたらいいでしょうか
whileを使ったやり方はわかるのですが、forでやることは不可能でしょうか?
下記のようなことがやりたいです

<script> window.onload=function(){ f=0; v1='i=0;i<10;i++'; v2='i=10;i>0;i--'; if(f==0){ for(v1){ console.log(i); } }else{ for(v2){ console.log(i); } } } </script>

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

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

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

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

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

BeatStar

2021/06/14 15:55

『できるかどうか』であれば、『試してみればいい』のでは?
maisumakun

2021/06/14 22:43

なぜそのような実装を行いたいのでしょうか?
guest

回答2

0

whileの場合はどのように行っていたか非常に気になりますが、for文の条件式を文字列で与えることはできないことはないです。
質問文のコードを最大限生かすならこうなるでしょう。

js

1v1='i=0;i<10;i++'; 2// v1をセミコロンで分割する 3v1array = v1.split(';'); 4 5// for文の各セクション(初期化、継続条件、終了時処理)に、それぞれ分割した式をevalで実行させる 6for(eval(v1array[0]); eval(v1array[1]); eval(v1array[2])){ 7 console.log(i); 8}

しかし、こんなことを実際に行うのは絶対にやめていただきたい。もし悪意のある文字列がv1に入ったら取り返しのつかないことになるので。

繰り返し言います。できるかどうかという質問だったので「できる」と回答しましたが、実際には絶対にやらないでください。
eval()を使わないでください!

投稿2021/06/14 19:15

hope_mucci

総合スコア4447

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

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

0

質問の背景がよくわかりませんが、範囲を指定してループを実行するような関数は作成可能です。

js

1 2myForEach(0, 9, i => console.log(i)); // 昇順 3myForEach(9, 0, i => console.log(i)); // 降順 4

投稿2021/06/14 23:45

int32_t

総合スコア21008

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問