
JavaScriptで多次元配列を生成する方法を教えて頂きたく思います。
現在下記の様なコードを作成しています。
resArrayNowという多次元配列を作っておいて、[name][point1][point2]
というnx3次元配列を動的に作成したいと思っています。
しかし、下記の様なプログラムを作成したところ、
if(resArrayNow.length==0){
の中入ったところで、実行されなくなっているようで上手くいきません。
どなたか、JavaScriptの多次元配列を動的に作成していく方法をご教授下さい。
宜しくお願いいたします。
-----------------------------------------------------------------------
var resArrayNow = Array();
arrayAdd("tom,1,45");
arrayAdd("ken,2,61");
arrayAdd("mike,33,5");
function arrayAdd(msg){
// カンマで分割し配列に格納
var resArray = msg.split(",");
/*resArrayNowに格納されているIPアドレスと同じアドレスからのメッセージ
* だった場合はx,yの値を更新、アドレスがなかった場合は新たに配列を追加する
*/
if(resArrayNow.length==0){
resArrayNow[0][0]=resArray[0];
resArrayNow[0][1]=resArray[1];
resArrayNow[0][2]=resArray[2];
alert(resArrayNow.length);
}
else{
for(var i = 0;i < resArrayNow.length;i++){
if(resArrayNow[i][0] == resArray[0]){
resArrayNow[i][1]=resArray[1];
resArrayNow[i][2]=resArray[2];
}else if(i== resArrayNow.length-1){
/*最後までIPアドレスを探して一致するIPが
*resArrayNowになかった場合は新たに配列を追加する。
*/
resArrayNow[i+1][0]=resArray[0];
resArrayNow[i+1][1]=resArray[1];
resArrayNow[i+1][2]=resArray[2];
}
}
}
}
A 回答 (1件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
こんにちは。
resArrayNow[0][0]=resArray[0];でエラーが出ていますね。
resArrayNow[0] = new Array();
を前に追加すればエラーは消えると思います。
resArrayNowの0番目を配列にする宣言です。
なので後に実行される
resArrayNow[i+1][0] = resArray[0];の前にも
resArrayNow[i+1] = new Array();
で配列にしなければエラーになると思います。
ただ、動かしてみましたがコメントから推測される動作はしませんでした。
for内の更新か追加の判断がまずいです。
恐らく下記で目的の動作が出来ると思うのですがいかがでしょうか。
(IPアドレスをキーにしています)
=============================================
var resArrayNow = new Array();
arrayAdd("1.1.1.1,1,1");
arrayAdd("1.1.1.2,2,2");
arrayAdd("1.1.1.3,3,3");
arrayAdd("1.1.1.2,4,4");
// 配列の中身を確認してみる
for ( i in resArrayNow ) {
alert ( "ip = [" + resArrayNow[i][0] + "]\nx=" + resArrayNow[i][1] + ",y=" + resArrayNow[i][2] );
}
function arrayAdd(msg){
var resArray = msg.split(",");
// resArray[0](IPアドレスを想定)をキーに連想配列としてresArrayを代入
resArrayNow[resArray[0]] = resArray;
}
=============================================
かなりシンプルですがこれでコメントにある
IPアドレスと同じアドレスだった場合はx,yの値で常に上書きされます。
結果、IPアドレスがなければ追加されますし、IPアドレスがあればresArrayで更新されます。
こんな方法もあります。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) ファイル全てを .xlsm に変更したところ、プログラムが途中で落ちてしまっています 17 2022/12/07 12:03
- Perl perl このテキストファイルを簡単に配列に入れるには? 2 2022/04/27 20:24
- JavaScript セレクトボックスで配列を呼び出したい。 1 2022/07/08 20:14
- JavaScript jsで、配列内の文章を改行する際どのようにすればいいですか。 3 2022/07/05 20:40
- その他(プログラミング・Web制作) google formsを使ったタスク依頼フォーム作成におけるご相談 1 2023/06/22 15:55
- C言語・C++・C# C#テキストボックスの文字を配列にいれてその後表示する 4 2022/07/17 04:47
- その他(プログラミング・Web制作) pythonリストの特定の値を表示htmlで表示できない 2 2022/05/14 05:48
- Visual Basic(VBA) EXCEL VBAにて動的にCheckBOXを複数作成し、同BOXにイベントを追加したい 1 2023/03/16 07:05
- C言語・C++・C# numpyスライス機能を使った数値計算 2 2023/05/08 16:01
- PHP ここでの ②if($su_d<>"")の比較演算子 を使う理由は 1 2022/03/26 02:33
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
同じIDで定義した要素の配列を...
-
jspからjavascriptの変数引継ぎ
-
undefinedを表示させない方法は...
-
配列の初期化
-
C#テキストボックスの文字を配...
-
JSONデータを50音順でソートしたい
-
配列を作って総当たりで距離を...
-
テトリス / 配列をブロックに...
-
二次元配列を使って順位をだす...
-
JavaScript window.openで開く...
-
javascriptでiframeのURL変更は?
-
ボタンをクリックすると数が増...
-
functionから別のfunctionを実...
-
C#で、ContextMenuStripに動的...
-
クリックすると上に開くアコー...
-
画像上のクリックした場所が分...
-
webページ上のTabキーの動き
-
var_dumpのdump意味はを知りた...
-
hoge の謎
-
Boolean型配列中のTrueの有無を...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
C#テキストボックスの文字を配...
-
同じIDで定義した要素の配列を...
-
jspからjavascriptの変数引継ぎ
-
javascript 変数名の連結をしたい
-
undefinedを表示させない方法は...
-
二次元配列を使って順位をだす...
-
javascriptで2つのArrayの...
-
複数のフィードの読み込みが日...
-
二次元配列の全要素の全要素を...
-
javascriptを用いて作成された...
-
("Scripting.Dictionary")につ...
-
javascriptで行を抽出したいです。
-
JavaScriptで簡単なクイズを作...
-
1から20までの整数から、重複な...
-
javascriptついてお聞きします。
-
ぷよぷよの消去アルゴリズムが...
-
配列を作って総当たりで距離を...
-
配列の数ではなく、文字列の長...
-
jQueryで文字数カウンタ(複数...
-
jQuery text()で、<br>タグも取...
おすすめ情報