有人给了我一个代码片段,用于从ASCII文件(此处为Positions.dat)加载浮点值并将这些值设置为数组。此代码使用Jquery:
$.get("/Positions.dat", function(content) {
var array = content.split(/\n/).filter(function(line) {
return line.trim().length > 0;
}).map(function(line) {
return line.trim().split(/\s+/).map(function(word) {
return +parseFloat(word);
});
});
console.log(array);
alert(array);
});
文件Positions.dat
位于服务器端,包含3列浮点值。
我不是Javascript专家,我想更好地理解这段代码。
我认为它首先用'\n' delimiter
分割所有行,然后只选择带a number of elements > 0 per line
的行(仅选择带有trim
的非空行),然后对每行分割3个单词并将每个单词转换为浮动。
语法对我来说非常复杂,任何人都可以对所使用的嵌套函数(map
line
和word
)给出更多精确度?
其次,我尝试将此代码包含在另一个脚本中,以将数组值放入另一个数组中:
<script src="http://code.jquery.com/jquery-2.1.4.min.js"></script>
<script>
$.get("/Positions.dat", function(content) {
var array = content.split(/\n/).filter(function(line) {
return line.trim().length > 0;
}).map(function(line) {
return line.trim().split(/\s+/).map(function(word) {
return +parseFloat(word);
});
});
});
for(var p = 0; p < 10; p++) {
var pX = array[p*3];
var pY = array[p*3+1];
var pZ = array[p*3+2];
}
</script>
但是我在控制台上收到以下错误:
ReferenceError: array is not defined
也许数组上面是local variable
,所以我尝试把它global
但是我得到了同样的错误。
任何线索?
感谢您的帮助