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で質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
準・究極の選択
「年収1000万円で一生カレーライス」か 「年収180万円で毎日何でも食べ放題」 あなたはどちらを選びますか?
-
フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
あなたが普段思っている「これまだ誰も言ってなかったけど共感されるだろうな」というあるあるを教えてください
-
映画のエンドロール観る派?観ない派?
映画が終わった後、すぐに席を立って帰る方もちらほら見かけます。皆さんはエンドロールの最後まで観ていきますか?
-
海外旅行から帰ってきたら、まず何を食べる?
帰国して1番食べたくなるもの、食べたくなるだろうなと思うもの、皆さんはありますか?
-
天使と悪魔選手権
悪魔がこんなささやきをしていたら、天使のあなたはなんと言って止めますか?
-
データベースのINT型項目にNULLはNG?
MySQL
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
同じIDで定義した要素の配列を...
-
jspからjavascriptの変数引継ぎ
-
C#テキストボックスの文字を配...
-
undefinedを表示させない方法は...
-
JavaScriptにおける[] とか :...
-
javascriptからphpに配列データ...
-
JavaScript を使ってpkゲームを...
-
イベントが初めの一回しか起き...
-
ASP.NETのコントロールの値をJa...
-
なぜmatchメソッドがエラーにな...
-
関数でy=g(x)のgとは何の略です...
-
モーダルダイアログウィンドウ...
-
今度は全角が0.5で認識されてし...
-
パス付きサイトのjavascript解析
-
JavaScript window.openで開く...
-
functionから別のfunctionを実...
-
class指定したHTML要素の背景色...
-
javaScript textareaの一行あた...
-
idを使わずにonclickで自身の要...
-
javascript パーティクルアニメ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
同じIDで定義した要素の配列を...
-
jspからjavascriptの変数引継ぎ
-
C#テキストボックスの文字を配...
-
二次元配列を使って順位をだす...
-
undefinedを表示させない方法は...
-
javascript 変数名の連結をしたい
-
javascriptで行を抽出したいです。
-
javascriptで入力フォームに日...
-
JavaScriptにおける[] とか :...
-
Perlの配列をJavaScriptに渡せ...
-
HTMLで誕生石と星座をアラート...
-
フォーム入力値の重複チェック
-
WSH(Jscript)でファイル一覧
-
[JS] setAttributeで保存される...
-
オブジェクトから任意のプロパ...
-
読み込んだテキストファイルの...
-
この配列は何?
-
順列生成アルゴリズムについて...
-
textareaに入力されたデータを...
-
JavaScriptからPHPに配列を渡す...
おすすめ情報