Сделать из строки нумерованный массив
Всем Привет. Такая проблема: Есть файл 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, время: 07:55. |