2014-10-31 4 views
-1

Код, показанный ниже, должен импортировать значения из файла temps.txt, но массив времени выглядит пустым, что может быть неправильным?Импорт из файла данных в массив

Я получаю только «Нан» в качестве вывода.

temps.txt файл выглядит следующим образом:

21.5 
22.3 
... etc 

Вот мой исходный код:

<!doctype html> 
<html lang="en"> 
<head> 
    <meta charset="utf-8"> 
    <title>load demo</title> 
    <style> 
    body { 
    font-size: 16px; 
    font-family: Arial; 
    } 
    </style> 
    <script src="//code.jquery.com/jquery-1.10.2.js"></script> 
</head> 
<body> 

<script> 
var times = []; 

$.get('temps.txt', function(data) { 
    times = data.split("\n"); 
    }); 
for (var i in times) 
{ 
    document.write(times[i] + "<BR />"); 
} 

</script> 
</html> 
+3

$ .get - это вызов aynch, и цикл for должен идти внутри функции обратного вызова, сразу после times = data.split ("\ n"); – lshettyl

+1

Кроме того, не используйте 'document.write'. Он заменяет все в документе каждый раз, когда вы его используете. Создайте элемент с jQuery и добавьте к нему другие элементы. – Andy

+0

Я хотел бы сохранить данные во временном массиве или это невозможно? – tubos

ответ

0

Что-то вроде этого:

1) Переместите петлю в $.get обратного вызова.

2) Используйте массив для создания вашей строки

3) Добавьте его к элементу тела с использованием join.

$.get('temps.txt', function(data) { 
    times = data.split("\n"); 
    var html = []; 
    for (var i in times) { 
    html.push(times[i] + '<br/>'); 
    } 
    $('body').append(html.join('')); 
}); 
Смежные вопросы