【解決済み】forEachの使い方が間違っているでしょうか?
Posted: 2016年12月24日(土) 18:46
いつもお世話になっていますm( )m
「計略」というタイプのスキルを作っています。パーティー内に
「軍師」がいる場合、アクター自身が習得しているスキルだけでなく
軍師が習得しているスキルを全員が使うことができる
(威力の大小はともかく)という仕組みを作ろうとしています。
Window_SkillList.prototype.makeItemList
↑スキルウィンドウに含めるスキルの一覧を作っているこの部分で、
最終的にthis._dataの中にスキル一覧をまとめていることが分かったため、
試にその最後に、
this._data.push($dataSkills[5]);
と書き加えてみたところ、パーティ全員のスキルウィンドウに5番のスキルが
追加され、選ぶと問題なく使用することもできました。
次に"5"のところに軍師が習得しているスキルの番号を順に入れて行けばよいと
思ったのですが、エラー(添付画像)が出て上手くいかなかったため、
一歩戻って以下のように試してみました。
var kari = [5,6,7];
kari.forEach(function(number){
this._data.push($dataSkills[number]);
});
↑これでも同様のエラーが出てしまいました。forEachの使い方の間違いで
numberに、一週目に5、二週目に6、三週目に7がちゃんと入っていないのかな?
と思って、一行上にconsole.logをはさんでみました。
var kari = [5,6,7];
kari.forEach(function(number){
console.log(number);
this._data.push($dataSkills[number]);
});
↑これで試したところ、numberにはちゃんと5と6と7がそれぞれ
入っていました。
ここで途方に暮れています。this._data.push($dataSkills[5]);
とすればちゃんと5番のスキルが追加されたのに、forEachで
5番、6番、7番のスキルを追加しようとするとエラーが出る、
というのはどんな理由が考えられるでしょうか?
「計略」というタイプのスキルを作っています。パーティー内に
「軍師」がいる場合、アクター自身が習得しているスキルだけでなく
軍師が習得しているスキルを全員が使うことができる
(威力の大小はともかく)という仕組みを作ろうとしています。
Window_SkillList.prototype.makeItemList
↑スキルウィンドウに含めるスキルの一覧を作っているこの部分で、
最終的にthis._dataの中にスキル一覧をまとめていることが分かったため、
試にその最後に、
this._data.push($dataSkills[5]);
と書き加えてみたところ、パーティ全員のスキルウィンドウに5番のスキルが
追加され、選ぶと問題なく使用することもできました。
次に"5"のところに軍師が習得しているスキルの番号を順に入れて行けばよいと
思ったのですが、エラー(添付画像)が出て上手くいかなかったため、
一歩戻って以下のように試してみました。
var kari = [5,6,7];
kari.forEach(function(number){
this._data.push($dataSkills[number]);
});
↑これでも同様のエラーが出てしまいました。forEachの使い方の間違いで
numberに、一週目に5、二週目に6、三週目に7がちゃんと入っていないのかな?
と思って、一行上にconsole.logをはさんでみました。
var kari = [5,6,7];
kari.forEach(function(number){
console.log(number);
this._data.push($dataSkills[number]);
});
↑これで試したところ、numberにはちゃんと5と6と7がそれぞれ
入っていました。
ここで途方に暮れています。this._data.push($dataSkills[5]);
とすればちゃんと5番のスキルが追加されたのに、forEachで
5番、6番、7番のスキルを追加しようとするとエラーが出る、
というのはどんな理由が考えられるでしょうか?