- PR -

JavaScriptでの2次元配列操作について

1
投稿者投稿内容
mso
ぬし
会議室デビュー日: 2003/12/04
投稿数: 496
お住まい・勤務地: 宮城
投稿日時: 2004-08-16 00:04
msoです。
JavaScriptについて悩んでいるのですが、
どこに相談して良いのかわからずここに書き込みます。

まず、下記のようなサンプルプログラムを作成しました。

コード:
function fnc_hoge()
{
	hoge = new Array();
	foo = new Array();
	var j=0;

	var i=0;foo[i] = "a"
	foo[++i] = "a"
	foo[++i] = "a"
	hoge[0] = foo;

document.write(hoge[0]);
document.write("<hr>");

	var i=0;foo[i] = "b"
	foo[++i] = "b"
	foo[++i] = "b"
	hoge[1] = foo;

document.write(hoge[0]);
document.write("<br>");
document.write(hoge[1]);
document.write("<hr>");

}




このサンプルで上と下のdocument.write(hoge[0]);に
入っている値が変わってしまいます。
そこで疑問なのですが、JavaScriptでは2次元配列での
文字列操作ができないのでしょうか?
もし、出来るのであればどのようにすれば可能でしょうか?
yaksya
会議室デビュー日: 2004/08/16
投稿数: 3
投稿日時: 2004-08-16 01:26
コード:
function fnc_hoge(){
    var hoge = new Array();
    var foo  = new Array();
    var j = i = 0;

    foo[i]   = "a";
    foo[++i] = "a";
    foo[++i] = "a";
    hoge[0]  = foo;

    document.write(hoge[0]);
    document.write("<hr>");

    i=0;
    foo      = new Array();
    foo[i]   = "b"
    foo[++i] = "b"
    foo[++i] = "b"
    hoge[1]  = foo;

    document.write(hoge[0]);
    document.write("<br>");
    document.write(hoge[1]);
    document.write("<hr>");
}



これでどうですか?
mso
ぬし
会議室デビュー日: 2003/12/04
投稿数: 496
お住まい・勤務地: 宮城
投稿日時: 2004-08-16 07:28
msoです。
おはようございます。
これから会社に行って来ます。

yaksyaさん。
提示していただいたサンプルコードをコピペで貼り付けたらうまくいきました。
正直まだどこがおかしいかわからないのですが、
比較して違った部分を見つけてみようと思います。って
書いている最中に分かりました。

なるほど、fooのArrayは2回宣言しないといけないのですね。
Javascriptの仕様かと思い諦めそうだったところありがとうございます。
1

スキルアップ/キャリアアップ(JOB@IT)