ページ 11

【解決済み】配列変数へ要素の追加

Posted: 2020年4月29日(水) 23:46
by 冷やっこ
立て続けの質問で申し訳ないのですがまた躓いてしまいました…。
またどうぞ宜しくお願い致します。

イベントコマンドのスクリプトで配列変数の末尾に要素を追加する事についてお聞きしたいのですが

コード: 全て選択

◆変数の操作:#0101 = [1,2,3,4,5]
◆スクリプト:var aaa = $gameVariables.value(101)
:     :aaa.push(6);
:     :
:     :$gameVariables.setValue(102 ,aaa)
◆文章:なし, ウィンドウ, 下
:  :\v[101]
:  :\v[102]
上記を実行するとメッセージウィンドウには
1,2,3,4,5,6
1,2,3,4,5,6
と、表示されます。私としましては変数101の値は変わらずに
1,2,3,4,5
1,2,3,4,5,6
と、表示されると思っていたのですが…。
変数101の値は変わらずに変数102に要素を追加するにはどのようにすれば良いのでしょうか?

どなたかお知恵をお貸し頂けたらありがたいです。
それではどうぞ宜しくお願い致します。

Re: 配列変数へ要素の追加

Posted: 2020年4月30日(木) 00:52
by 奏ねこま
せっかくなので「javascript 配列 コピー」で検索してみましょう。
ご提示のスクリプトの何がいけないのか、そういうのもわかると思いますので。

Re: 配列変数へ要素の追加

Posted: 2020年4月30日(木) 01:55
by 冷やっこ
奏ねこま様、返信ありがとうございます!
せっかくなので「javascript 配列 コピー」で検索してみましょう。
ご提示のスクリプトの何がいけないのか、そういうのもわかると思いますので。
早速検索をしまして解りました!
参照渡し、値渡しとあるのですね、なるほど大変勉強になります。

コード: 全て選択

◆スクリプト:var aaa = $gameVariables.value(101).slice();
:     :aaa.push(6);
:     :
:     :$gameVariables.setValue(102 ,aaa)
上記の様に slice を使用して値渡しで無事に思い通りの結果になる事ができました。
奏ねこま様、このたびもお世話になり本当にありがとうございました!