私はこのフォーラムには新しく、数時間後に壁に頭を叩き、TeamTreeHouseに登録してアレイの詳細なコースを検索しましたが、探しているものが見つかりませんでした。私はteamTreehouseが大好きです。Javascriptでforループ変数の配列を作る方法は?
C#からJavascriptにリストや配列を変更しようとすると問題が発生しました。 RPGメーカーのMVです。私は "CharacterID"の位置XとYのリストを作成し、Xの位置とYの位置の配列の中に入れた各タイルとの距離を計算します。 CharacterのIDは0以上であり、そのIDとそのxとyの位置はeventArray [ID、x、y]です。だから私はCharacterIDの位置を得たが、私は36行(私の配列の長さ)の代わりに最大10行のコードを得るように物事をループする方法私の人生のために理解していない。 C#でVector3は自動的にリストまたは辞書に追加され、別の "items"ですが、Javascript配列で同じ原則を試してみると、エントリのリスト全体を含む1つのアイテムが得られ、それらを取得する方法はわかりません。
var eventArray = [];
var tilePosArrayXadd1 = [];
var tilePosArrayYadd1 = [];
Game_Event.prototype.initialize = function (mapId, eventId) {
Game_Character.prototype.initialize.call(this);
this._mapId = mapId;
this._eventId = eventId;
this.locate(this.event().x, this.event().y);
var eventX = this.event().x;
var eventY = this.event().y;
this.refresh();
eventArray.push([eventId, eventX, eventY]);
};
Game_Player.prototype.locate = function (x, y) {
Game_Character.prototype.locate.call(this, x, y);
actorX = $gamePlayer.x;
actorY = $gamePlayer.y;
main(actorX, actorY);
};
function main(x, y) {
var maxTileDist = 2;
///TOPRIGHTTILES
for (var i = 0; i < maxTileDist ; i++) {
tilePosArrayXadd1.push(i + x);
tilePosArrayYadd1.push(y);
};
for (var i = 0; i < maxTileDist ; i++) {
tilePosArrayXadd1.push(i + x);
tilePosArrayYadd1.push(y + 1);
};
for (var i = 0; i < maxTileDist ; i++) {
tilePosArrayXadd1.push(i + x);
tilePosArrayYadd1.push(y + 2);
};
for (var i = 0; i < maxTileDist ; i++) {
tilePosArrayXadd1.push(i + x);
tilePosArrayYadd1.push(y + 3);
};
for (var i = 0; i < maxTileDist ; i++) {
tilePosArrayXadd1.push(i + x);
tilePosArrayYadd1.push(y + 4);
};
///TOPLEFTTILES
for (var i = 0; i < maxTileDist ; i++) {
tilePosArrayXadd1.push(i - x);
tilePosArrayYadd1.push(y);
};
for (var i = 0; i < maxTileDist ; i++) {
tilePosArrayXadd1.push(i - x);
tilePosArrayYadd1.push(y + 1);
};
for (var i = 0; i < maxTileDist ; i++) {
tilePosArrayXadd1.push(i - x);
tilePosArrayYadd1.push(y + 2);
};
for (var i = 0; i < maxTileDist ; i++) {
tilePosArrayXadd1.push(i - x);
tilePosArrayYadd1.push(y + 3);
};
for (var i = 0; i < maxTileDist ; i++) {
tilePosArrayXadd1.push(i - x);
tilePosArrayYadd1.push(y + 4);
};
///BOTTOMRIGHTTILES
/*for (var i = 0; i < maxTileDist ; i++) {
tilePosArrayXadd1.push([[i + x+1], y]);
};*/
for (var i = 0; i < maxTileDist ; i++) {
tilePosArrayXadd1.push(i + x);
tilePosArrayYadd1.push(y - 1);
};
for (var i = 0; i < maxTileDist ; i++) {
tilePosArrayXadd1.push(i + x);
tilePosArrayYadd1.push(y - 2);
};
for (var i = 0; i < maxTileDist ; i++) {
tilePosArrayXadd1.push(i + x);
tilePosArrayYadd1.push(y - 3);
};
for (var i = 0; i < maxTileDist ; i++) {
tilePosArrayXadd1.push(i + x);
tilePosArrayYadd1.push(y - 4);
};
///BOTTOMLEFTTILES
/*for (var i = 0; i < maxTileDist ; i++) {
tilePosArrayXadd1.push([[i - x], y]);
};*/
for (var i = 0; i < maxTileDist ; i++) {
tilePosArrayXadd1.push(i - x);
tilePosArrayYadd1.push(y - 1);
};
for (var i = 0; i < maxTileDist ; i++) {
tilePosArrayXadd1.push(i - x);
tilePosArrayYadd1.push(y - 2);
};
for (var i = 0; i < maxTileDist ; i++) {
tilePosArrayXadd1.push(i - x);
tilePosArrayYadd1.push(y - 3);
};
for (var i = 0; i < maxTileDist ; i++) {
tilePosArrayXadd1.push(i - x);
tilePosArrayYadd1.push(y - 4);
};
var tilex0 = [];
var tiley0 = [];
for (var j = 0; j < tilePosArrayXadd1.length; j++) {
tilex0.push(eventArray[0][1] - tilePosArrayXadd1[j]);
tiley0.push(eventArray[0][2] - tilePosArrayYadd1[j]);
console.log(tilex0[0])
console.log(tilex0.length)
}
上記のコードは、私が「J」変数で宣言されたとして、それは私にtilePosArrayXadd1.lengthのリストを与えるだろうと思ったとき...私の1の長さを与えます。だから、誰でも私が間違っていることを説明したり、この問題の説明を含む非常に良いチュートリアルに案内したりすることができます。あなたの時間のためにみんなありがとう。 Ninekorn
'tilePosArrayXadd1'はどこに定義されていますか?その配列にはいくつのアイテムがありますか? – hackerrdave
'tilex0'と' tiley0'は、ループが終了した後、 'tilePosArrayXadd1.length'と等しい長さを持つべきです...ループの後に' console.log(tilex0.length) 'を移動して確認してください。 –
コード – Ninekorn