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

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

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

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

Q&A

解決済

3回答

1876閲覧

javascriptで動的な定数を宣言したい。

退会済みユーザー

退会済みユーザー

総合スコア0

JavaScript

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

0グッド

1クリップ

投稿2019/02/05 08:22

編集2019/02/05 08:44

前提・実現したいこと

javascriptで任意の数だけ定数を作成したい。
例えばチェックボックスがあるページで選択されたチェックボックス分定数を作成するという感じです。

やろうとしたこと

const itemLength = 4; // チェックボックスで選択された数が入る。今回は4 for(let i = 0; i < itemLength.length; i += 1) { const item`${i}` = `${i}`; }

こうやろうとしたのですがうまくいきませんでした。

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

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

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

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

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

x_x

2019/02/05 08:26

for内で宣言したら外では使えませんが?
azuapricot

2019/02/05 08:26

個人的な疑問なんですけど、定数を変数でつくったらそれは定数じゃないような・・・????? ご自分で言ってるように「item0,item1,item2,item3という変数ができて」 ・・・変数ですよね?・・・・んんん?
azuapricot

2019/02/05 08:28

ま、まぁ定数なんですよね、そのあと変更したくないなら、定数、ですよね、たぶん。たぶん。
azuapricot

2019/02/05 08:28

(くりっぷするから誰か回答おねがいします・・・・(ひとまかせ))
退会済みユーザー

退会済みユーザー

2019/02/05 08:34

言葉足らずで申し訳ありません。
m.ts10806

2019/02/05 08:36

過去質問にJavaScriptにおける動的変数の作り方の質問があったような。
m.ts10806

2019/02/05 08:37

はっ 動的定数 って 確かに定数じゃないですね。
guest

回答3

3

ベストアンサー

無理です

constのスコープはブロック内に限られますので、forの中で定義しても役に立ちません。

もっとも、const変数に入れた配列であれば定義することは可能です(ただし、コードを見れば明らかなように、Object.freezeなどの手を使わない限り、変更可能なことは要注意です)。

javascript

1const itemLength = 4; // 任意の数 2const items = []; 3 4for(let i = 0; i < itemLength; i += 1) { 5 items[i] = `${i}`; 6} 7 8Object.freeze(items);

投稿2019/02/05 08:28

編集2019/02/05 08:33
maisumakun

総合スコア146612

kei344, yambejp, papinianus👍を押しています

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

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

x_x

2019/02/05 08:32

itemLength.length は undefined ...
maisumakun

2019/02/05 08:33

あら、これは失礼しました(元のコードをコピペしただけでした)
退会済みユーザー

退会済みユーザー

2019/02/05 08:50

わかりづらい質問ですみません。 任意の数だけ定数を作成したかったのですが for文で回してその中で定数宣言すればやりたいことができると思ったのですが そもそも無理なんですね。。
maisumakun

2019/02/05 09:04

そもそも、「任意の数だけ定数を作成した」い理由はどのあたりにありますでしょうか(配列ではなにかまずいのでしょうか)。
退会済みユーザー

退会済みユーザー

2019/02/06 01:53

すみません。 定数にこだわっていましたが 連想配列作ってしまえば解決しそうでした!
papinianus

2019/02/06 01:57

連想配列(js的にはobject)を作る例を回答しているんですが…
guest

0

どうしたいのかわかりませんが、こういうことでしょうか?

JavaScript

1const items = []; 2for (let i = 0; i < 4; i++) { 3 items[i] = i.toString(); 4} 5 6items; // ["0", "1", "2", "3"]

投稿2019/02/05 08:30

x_x

総合スコア13749

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

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

退会済みユーザー

退会済みユーザー

2019/02/05 08:47

わかりづらい質問ですみません。 任意の数分だけ定数を宣言したいです。 そのためにはループの中で定数宣言して〜とか色々やってみたのですが うまくいかず。。
guest

0

javascript

1const obj = [0,1,2,3].reduce((pr, c) => { pr["item"+c] = ""; return pr;},{});

投稿2019/02/05 08:29

papinianus

総合スコア12705

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.31%

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

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

質問する

関連した質問