Javascript 如何阅读&;使用java脚本解析文件?

Javascript 如何阅读&;使用java脚本解析文件?,javascript,Javascript,这是我的代码,我正在读取一个包含纬度和经度的文件,我正在数组中存储文件内容。但我不想将其存储在数组中,是否有其他选项可以存储和处理它 我在for循环中用这些lat&lon生成一个映射,我将它们传递给一个函数,在一个数组中,你不能给出延迟,所以我需要其他方法 这是我的密码: function FileHelper() {} { FileHelper.readStringFromFileAtPath = function(pathOfFileToReadFrom)

这是我的代码,我正在读取一个包含纬度和经度的文件,我正在数组中存储文件内容。但我不想将其存储在数组中,是否有其他选项可以存储和处理它

我在for循环中用这些lat&lon生成一个映射,我将它们传递给一个函数,在一个数组中,你不能给出延迟,所以我需要其他方法

这是我的密码:

  function FileHelper()
    {}
    {
        FileHelper.readStringFromFileAtPath = function(pathOfFileToReadFrom)
        {
            var request = new XMLHttpRequest();
            request.open("GET", pathOfFileToReadFrom, false);
            request.send(null);
            var returnValue = request.responseText;

            return returnValue;
        }
    }

    var pathOfFileToRead = "LatLon.txt";

    var contentsOfFileAsString = FileHelper.readStringFromFileAtPath
    (
        pathOfFileToRead
    );
    **var contentsArray=new Array();
    var contentsArray = contentsOfFileAsString.split('\n');**  




    function main()
    {
        for(i=0;i<contentsArray.length;i++)
        {
            addMarker();
        //  setTimeout(function() { remveh1();}, 2000);  

        }
    }

    function addMarker()
    {
        console.log(contentsArray[i]);
        split_contentArray=contentsArray[i].split(',');
        vehicle_lat=split_contentArray[0];
        vehicle_lng=split_contentArray[1];


         var vehicle = new MQA.Poi({ lat: **vehicle_lat**, lng: **vehicle_lng** });
         var icon = new MQA.Icon('https://cdn2.iconfinder.com/data/icons/gpsmapicons/blue/gpsmapicons07.png', 26, 26);          
         vehicle.setIcon(icon);
         vehicle.setKey("abc");

         map.addShape(vehicle);

        vehicle.setRolloverContent("Vehicle # KA05 9999");

        }




    function remveh1()
    {
        map.removeShape(map.removeShape(map.getByKey("abc"))); 
    };     
函数FileHelper()
{}
{
FileHelper.readStringFromFileAtPath=函数(pathOfFileToReadFrom)
{
var request=new XMLHttpRequest();
打开(“获取”,pathoffieltoreadfrom,false);
请求发送(空);
var returnValue=request.responseText;
返回值;
}
}
var pathoffieltoread=“LatLon.txt”;
var contentsOfFileAsString=FileHelper.readStringFromFileAtPath
(
病理学
);
**var contentsArray=新数组();
var contentsArray=contentsOfFileAsString.split('\n');**
函数main()
{
对于(i=0;i
实际上我想要的是,我想要一个延迟b/w在地图上显示位置。从上面的代码中,我一次显示所有位置,我想要一个接一个地显示它们,我应该怎么做

作为(简化的)背景,浏览器使用与重新绘制相同的线程来运行JavaScript,因此如果您尝试在
for
循环中更新页面,整个循环将在实际重新绘制之前完成。您可以通过使用基于
setTimeout()的算法替换
for
来处理此问题
调用。在超时之间,JS是“非活动的”(不作为技术术语),因此浏览器可以重新绘制

您的代码包含对未显示的函数的调用,因此我只能建议对其进行相当小的更新,将
addMarker()
更改为接受对标记的引用作为参数,而不是依赖全局
contentsArray()
I
变量,然后重写
main()
要在调用
addMarker()时传递相应的标记对象,请执行以下操作:

函数main(){
var i=-1;
(函数processNext(){
if(++i

(简化)演示:

“在阵列中,您不能给出延迟”-您所说的“延迟”是什么意思?请更清楚地描述您正在尝试执行的操作。如果您希望标记在地图上一次显示一个,并且每个标记之间有一个延迟,那么数组仍然是存储所有标记的合适位置,您只需更改显示它们的代码…我正试图在地图上显示一个位置,基于纬度,我不想存储文件在数组中,有没有其他存储文件的方法?数组有什么问题?如果你有很多类似的东西,比如一系列坐标,那么数组是存储它们的最明显和最好的结构。同样,你提到了“延迟”在你的问题中,但没有解释这实际上意味着什么。你试图达到什么效果?从用户的角度来看,如果它按照你希望的方式工作会发生什么?实际上我想要的是,我想要一个延迟b/w显示地图上的位置,从上面的代码我一次显示所有的位置,我想要显示我一个接一个,我该怎么做
function main() {
    var i = -1;
    (function processNext() {
       if (++i < contentsArray.length) { // if there are markers left
          addMarker(contentsArray[i]);   // add the next one
          setTimeout(function() {        // then delay before
            remveh1();                   // removing it and then
            processNext();               // process the next one
          }, 2000);
       }
    })();
}

function addMarker(marker)
{
    console.log(marker);
    split_contentArray = marker.split(',');

    // rest of your function here unchanged
}