1

私はコードをもっている。これからテキストをロードします。

<script type="text/mygamelevel" id="level1" src="levels/level1.txt">
        000122341
        124235245
        154456567
</script>

mapa = loadFromFile("level1");

そして、loadFromFile:

function loadFromFile(id) {
var level = document.getElementById(id).text;
var lines = level.split("\n");
for (var i = 0; i < lines.length; i++) {
    var line = lines[i];
    if (!line.trim())
        continue;
    var letter = line.charAt(2);
    alert("Second: " + letter + " ");
}
}

しかし、それは機能しません:/ ブラウザのアラートは空です。なんで?

4

2 に答える 2

1

私はあなたの機能を修正しました:

function loadFromFile(id) {
    var level = document.getElementById(id).text;
    var lines = level.split("\n");
    //lines.length - 1 to parse each lines from 0 to 8 (9 numbers)
    for (var i = 0; i < lines.length - 1; i++) {
        var line = lines[i].trim(); //trim to remove white spaces
        if(line.length)  //if the line is not empty
        {
            var letter = line.charAt(1); //second letter
           alert("Second: " + letter + " ");
        }
    }
}

配列はから始まる0ので、2番目の文字はであり、からではなくからcharAt(1)数える必要があることに注意してください。01

000122341 =>9つの数字

for 1 to 10 =>9つの数字

for 0 to 10 =>10個の数字

for 0 to (10 - 1) =>9つの数字

実用的な例については、フィドルを参照してください。

于 2013-03-09T11:18:57.803 に答える
0

問題は、変数lineの先頭にスペースが含まれていることです..000122 (各ドットはスペースです)。必要な値を取得するには、これらの余分なスペースを削除する必要があります。

于 2013-03-09T11:18:43.990 に答える