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

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

新規登録して質問してみよう
ただいま回答率
85.48%
オブジェクト

オブジェクト指向において、データとメソッドの集合をオブジェクト(Object)と呼びます。

JavaScript

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

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

配列

配列は、各データの要素(値または変数)が連続的に並べられたデータ構造です。各配列は添え字(INDEX)で識別されています。

Q&A

解決済

2回答

766閲覧

JavaScriptでオブジェクトを連想配列のように追加したい

yamaotakuro

総合スコア13

オブジェクト

オブジェクト指向において、データとメソッドの集合をオブジェクト(Object)と呼びます。

JavaScript

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

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

配列

配列は、各データの要素(値または変数)が連続的に並べられたデータ構造です。各配列は添え字(INDEX)で識別されています。

0グッド

1クリップ

投稿2019/09/03 02:34

JavaScriptで配列にオブジェクトを連想配列のように追加したいのですが
うまく追加できません。

求める形

javascript

1 2var hoge = [ 3 {"name":"aaa","text":'bbb'} 4]; 5ループで値を追加してこの形に持ってい行きたい 6var hoge = [ 7 {"name":"aaa","text":'bbb'}, 8 {"name":"ccc","text":'ddd'}, 9 {"name":"eee","text":'fff'} 10];

試したこと

javascript

1 var seriesArr = new Array(); 2 var seriesObj = new Object(); 3 //ダメ 4 for(var i=0; i<len; i++){ 5 seriesObj.label = labelArr[i]; 6 seriesObj.color = colorArr[i]; 7 seriesObj.data = dataArr[i]; 8 seriesArr[i] = seriesObj; 9 } 10 //ダメ 11 for(var i=0; i<len; i++){ 12 seriesObj.label = labelArr[i]; 13 seriesObj.color = colorArr[i]; 14 seriesObj.data = dataArr[i]; 15 seriesArr.push(seriesObj); 16 }

これだとうまく追加できません。

なにか良い方法をご教授いただけると幸いです。
よろしく願い致します。

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

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

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

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

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

guest

回答2

0

ループ内で新しくオブジェクトを生成しましょう。外側で生成したseriesObjを使いまわしているため、配列に挿入するものがすべて同じオブジェクトになってしまい、書き換えればもともと入れたものの内容も変化してしまいます。

javascript

1 var seriesArr = []; 2 3 for(var i=0; i<len; i++){ 4 var seriesObj = {}; 5 seriesObj.label = labelArr[i]; 6 seriesObj.color = colorArr[i]; 7 seriesObj.data = dataArr[i]; 8 seriesArr[i] = seriesObj; 9 }

なお、new Array()new Object()という書き方は通常行いません。リテラルで生成するのが一般的です。

投稿2019/09/03 02:39

maisumakun

総合スコア145184

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

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

yamaotakuro

2019/09/03 02:45

配列、オブジェクトの生成もご教授いただきありがとうございます!
guest

0

ベストアンサー

seriesObj の初期化処理をループの中に入れてください。

js

1 for(var i=0; i<len; i++){ 2 let seriesObj = { 3 label: labelArr[i], 4 color: colorArr[i], 5 data: dataArr[i] 6 }; 7 seriesArr.push(seriesObj); 8 }

投稿2019/09/03 02:38

thyda.eiqau

総合スコア2982

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

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

yamaotakuro

2019/09/03 02:44

オブジェクトはループの中で初期化するのですね。 サンプルコードもいただき助かりました。 ありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問