1
後、私は、最小の一番高いから山の配列をソートするために取得しようとしているが、印刷しようとしたとき、私は私がすべてのステップが欠落していないと思う未定義配列プッシュ
TypeError: mountainArray[i] is undefined
を取得します解決策が、私は未定義になる。事前に
おかげ以下
コード:
var position;
var height;
function Mountain(position, height) {
this.position = position;
this.height = height;
}
function sortMountain(a, b) {
return b.height - a.height;
}
var mountainArray = [];
// game loop
while (true) {
for (var i = 0; i < 8; i++) {
var mountainH = parseInt(readline()); // represents the height of one mountain, from 9 to 0.
mountainArray.push(Mountain(i, mountainH));
mountainArray.sort(sortMountain);
}
for (var i = 0; i < 8; i++) {
print(mountainArray[i].position);
}
}
readlineは前に呼び出されます。問題は、mountainArray.push(新しいMountain(i、mountainH))から新しい部分が失われていた。私はゼロからJSを学ぶ必要があると思われる –
また、配列を一度ソートする必要があります...ループの各反復ではありません – charlietfl
コードが正しくエラーを修正している間、テキストは少しオフです。 'new'は' push'ingとは何の関係もありません。 'new'が必要なのは、' Mountain'にプレーンなコンストラクタ関数があるからです。これは 'new'で使わないと何も返さないからです。 'Mountain'を別の方法で書くことを選択した場合、' new'なしで 'push'を使うことができます。 –