Сделать из строки нумерованный массив
Всем Привет. Такая проблема: Есть файл txt который имеет вид
0 Денис 1 Вася 2 Лина 3 Джек 4 Оля 5 Люся 6 Настя 7 Джони С помошью JS кода легко получается прочитать и вывести на экран как текст. Но никак не могу сделать из него массив, который имел бы такой же вид, т.е. var array = [0 Денис 1 Вася 2 Лина 3 Джек 4 Оля 5 Люся 6 Настя 7 Джони]; Можно добавить разделители типа (, : или ;), главное чтобы при обращении array[4] показывало "Джек". HTML: <body> <input type="file" id="file_load" multiple=""> <input type="button" value="READ" onclick="read()"> <input type="button" value="Show" onclick="show_arr()"> <div id="file_div"></div> </body> javascript: var a; function read() { // здесь проблем нет, файл читает и выводит var file = document.getElementById('file_load').files[0]; var reader = new FileReader(); reader.readAsText(file); reader.onload = function () { a = document.getElementById('file_div').innerHTML = reader.result; }; } function show_arr() { var arr_a = a.split(b); // пытаюсь разбить массив на номер и пробел за ним var b = i + ' '; for (var i = 0; i < arr_a.length; i++) { } document.getElementById('show_sub').innerHTML = arr_a[2]; //ничего не выводиться } Как сделать чтобы выводило "Лина". |
den2412,
для этого не обязательно нумеровать строки в файле, достаточно чтобы каждое имя было с новой строки var name = 'Денис\r\nВася\r\nЛина\r\nДжек'; alert(name.split(/\r?\n/)[1]) Перевод строки зависит от системы, это может быть \n или \r\n |
Спасибо за столь быстрый ответ. Вот только что делать если файл содержит больше 1000 имен, не удалять же все цифры вручную.
|
Цитата:
|
<input type="file" id="file_load" multiple="">
<input type="button" value="READ" onclick="read()">
<input type="button" value="Show" onclick="show_arr()">
<div id="file_div"></div>
<div id="show_sub"></div>
<script>
var a;
function read() { // здесь проблем нет, файл читает и выводит
var file = document.getElementById('file_load').files[0];
var reader = new FileReader();
reader.readAsText(file);
reader.onload = function () {
a = document.getElementById('file_div').innerHTML = reader.result;
};
}
function show_arr() {
var a = document.getElementById('file_div').innerHTML;
console.log(a);
var arr_a = a.split('\n');
document.getElementById('show_sub').innerHTML = arr_a[2];
}
</script>
|
function parseNameList(string){
var regexp = /^\s*(\d+)\s*(.*)\s*$/mg, match, result = [];
while(match = regexp.exec(string))
result[+match[1]] = match[2];
return result
}
parseNameList(`
0 Денис
1 Вася
2 Лина
3 Джек
4 Оля
5 Люся
6 Настя
7 Джони
`)
|
Огромное спасибо!!! Чет даже и не подумал \n использовать. JavaScript неделю изучаю, опыта пока не хватает. Спасибо всем кто помогал. Тему можно закрыть :)
|
| Часовой пояс GMT +3, время: 16:16. |