Как хранить информацию в массиве в javascript, которую я извлек из текстового файла для последующего использования? Я использую его для размещения HTML-кода, но также для того, чтобы реагировать на пользователя. В настоящее время я могу поместить HTML просто отлично с помощью встроенных вызовов функций, но я хочу, чтобы данные, чтобы использовать позже ...не может получить доступ к var вне функции get
function get_words() {
var words = new Array();
var sylls = new Array();
var csv_file = new Array(); // for word arrays
$.get('terms.csv', function(data){
csv_file = data.split('\n');
// csv file is now in an array, split into seperate word array and syllable array
for (var i = 0; i < csv_file.length; i++) {
var both = csv_file[i].split(','); // split at the comma
words[i] = both[0]; // populate word array
sylls[i] = both[1]; // populate syllable array
put_word(words[i], sylls[i]);
};
check_resize();
});
}
function put_word(word, sylls) {
console.log(word);
// place the words into 'words' div
var divID = document.getElementById("words"); // grab 'words' div
divID.innerHTML += "<span>" + word + "</span>" + "<sup>" + sylls + "</sup> ";
}
Вот код, который я есть. Я бы хотел, чтобы слова [] и sylls [] были доступны вне этой функции get.
EDIT: Позвольте мне быть более ясным (oops). Неважно, где я объявляю свои массивы. Причина, по которой я это знаю, заключается в том, что я могу разместить их в верхней части моего скрипта (вне функции), а в конце get_words() попробуйте console.log (слова), и это будет пустой массив.
var words = new Array();
var sylls = new Array();
var csv_file = new Array(); // for word arrays
$(document).ready(function(){
get_words();
});
function get_words() {
$.get('terms.csv', function(data){
csv_file = data.split('\n');
// csv file is now in an array, split into seperate word array and syllable array
for (var i = 0; i < csv_file.length; i++) {
var both = csv_file[i].split(','); // split at the comma
words[i] = both[0]; // populate word array
sylls[i] = both[1]; // populate syllable array
//put_word(words[i], sylls[i]);
};
check_resize();
});
console.log(words);
}
EDIT: Может ли кто-нибудь сказать мне, где поставить обратный вызов ??
function get_words() {
$.get('terms.csv', function(data){
csv_file = data.split('\n');
// csv file is now in an array, split into seperate word array and syllable array
for (var i = 0; i < csv_file.length; i++) {
var both = csv_file[i].split(','); // split at the comma
words[i] = both[0]; // populate word array
sylls[i] = both[1]; // populate syllable array
//put_word(words[i], sylls[i]);
};
});
}
Так что ... если я хочу подождать, пока после того, как этот файл был введен в массив, а затем вызвать другую функцию, как я могу это сделать?
Проще говоря 'words' и' sylls' instanciations вне 'get_words' функции –
Do вы имеете в виду вне 'get' или вне' get_words'? –
Я не уверен, что вы имеете в виду, но здесь нужно либо определить массивы вне функции, и если это не то, что вы имеете в виду, возможно, вы хотите сохранить строки в какой-либо сессии, как объект, я бы предложите использовать cookie, если это просто JS – theBigChalk