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,因此第二个字母是 the并且您必须从不从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 回答