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

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

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

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

Q&A

解決済

3回答

1548閲覧

[JavaScript]配列数に応じたオブジェクトのインスタンス化について

qasev

総合スコア60

JavaScript

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

0グッド

0クリップ

投稿2016/02/02 06:12

配列の内容を使って、配列数分インスタンス化したいと考えております。

var arr = ['aaa', 'bbb', 'ccc']; var list = [ new arr(aaa); new arr(bbb); new arr(ccc); ]

このlist内のインスタンス化を、配列数が可変となるためループで自動化したいのですが、方法が思いついておりません。

下記の様になる場合もあります。

var arr = ['aaa', 'bbb', 'ccc', 'ddd']; var list = [ new arr(aaa); new arr(bbb); new arr(ccc); new arr(ddd); ]

アドバイスいただけますと幸いです。よろしくお願いいたします。

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

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

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

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

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

think49

2016/02/02 06:25

new arr で「TypeError: arr is not a function」となり、aaa, bbb, ccc で ReferenceError です。 JavaScript の基礎文法を踏まえた上で分かるように補足説明をお願いします。
退会済みユーザー

退会済みユーザー

2016/02/02 06:30

こちらの質問が他のユーザから「やってほしいことだけを記載した丸投げの質問」という指摘を受けました 「質問を編集する」ボタンから編集を行い、調査したこと・試したことを記入していただくと、回答が得られやすくなります。
guest

回答3

0

ベストアンサー

JavaScript

1var items = ['aaa', 'bbb', 'ccc', 'ddd']; 2var list = items.map(function(it){ 3 return new arr(it); 4});

mapは配列の要素全てに同じ処理を行った結果を取り出す概念です。
for文はバグの温床なのでmapで解決できるならmapを使うと良いでしょう。

投稿2016/02/02 13:30

miyabi-sun

総合スコア21158

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

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

0

var arr = ['aaa', 'bbb', 'ccc']; var i = 0; var max = arr.length; var list = []; for (i; i < max; i++){ list.push(new Array(arr[i])) } console.log(list);

**new arr(aaa);**の意味がよく分からないですが、
やりたいこととしては上記のコードのようなものでしょうか?

投稿2016/02/02 06:30

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

0

すみません、自己解決いたしました。

ご指摘にありましたように、new arrは、new arr1と書き換えました。
arr1は別の場所に関数がある前提です。言葉足らずで失礼いたしました。
ありがとうございます。

var arr = ['aaa', 'bbb', 'ccc', 'ddd']; var list = []; for (var i in arr) { list[i] = new arr1(arr[i]); }

投稿2016/02/02 06:27

qasev

総合スコア60

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

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

think49

2016/02/02 06:32

arr1 が未定義なので new arr1 も ReferenceError なのですが、ここに書かれていない部分で arr1 が定義されているのでしょうね…。 質問する時には「貼り付けられたコードのみでエラーがないか」の確認をお願いします。 回答者は寄せられた情報からしか判断できませんので「補足要求⇒継ぎ足し情報」が積み重なると混乱します。
qasev

2016/02/02 06:33

断片的な情報でお伝えしてしまい、混乱を招き大変失礼いたしました。 コメントくださり、誠にありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問