我有一个代码。它从中加载文本:
<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 + " ");
}
}
但它不起作用:/浏览器中的警报为空。 为什么呢?
答案 0 :(得分: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
,因此第二个字母为charAt(1)
,您必须从0
开始计算,而不是从1
开始计算:
000122341
=&gt; 9个数字
for 1 to 10
=&gt; 9个数字
for 0 to 10
=&gt; 10个号码
for 0 to (10 - 1)
=&gt; 9个数字
有关工作示例,请参阅fiddle!
答案 1 :(得分:0)
问题是你的变量line
在开头就包含空格,就像..000122
(每个点都是一个空格)你需要删除那些额外的空格来获得你想要的值。 / p>