Есть файл, структура которого выглядит примерно так:
33,40,43,45,47,49
34,40,41,45,46,48
36,40,43,45,46,48
15,39,43,44,47,49
35,40,42,45,47,49
...
Я пытаюсь загрузить данные файла и записать все что в нем есть в одномерный массив, важно что бы он в итоге был числовой. Есть один вариант, но мне кажется что он неэффективен ибо все можно сделать гораздо проще существующими функциями JS.
Мой вариант выглядит так и не работает ибо сколько всего я не пробовал - выходит либо undefigned или строка. Например я так и не понял как расширять массив(одномерный) другими массивами, что бы при этом его данные стали числовыми.
if (window.File && window.FileReader && window.FileList && window.Blob) {
document.getElementById('file').addEventListener('change', function(e) {
var file = e.target.files[0];
var reader = new FileReader();
reader.onload = function(e) {
var text = e.target.result;
var newarray = text.split('\n');
for (i=0; i<newarray.length; i++) {array.concat(newarray[i].split(','));}
for (i=0; i<array.length; i++) array[i] = Math.floor((array[i]/50)*100)/100;
for (i=0; i<array.length-501; i++) {
array2.push([array.slice(i,i+500), [array[i+501]]]);
}
};
reader.readAsText(file);
});
} else {
alert('File API is not supported!');
}
Ну и после этого я делаю еще один массив на основе данных данного. Это не должно влиять ни на что, кроме как еще раз подчеркнуть, что нужно записать все данные в одномерный массив.
Вы пытаетесь получить массив такого вида: [33, 40, 43, 45, ...]
? Тогда достаточно двух вложенных циклов и двух вызовов String.prototype.split()
, примерно как вы и делали. Работает это примерно так:
String.prototype.trim()
, чтобы убрать перенос строки в конце файла.let file = `33,40,43,45,47,49
34,40,41,45,46,48
36,40,43,45,46,48
15,39,43,44,47,49
35,40,42,45,47,49`;
file = file.trim();
let rows = file.split("\n");
let flatArray = [];
for (let row in rows) {
items = rows[row].split(',');
for (let item in items) {
flatArray.push(parseInt(items[item]));
}
}
console.log(flatArray);
Вместо for...in
можете также использовать for...of
(ES6) или Array.prototype.forEach()
- как вам удобно.
Виртуальный выделенный сервер (VDS) становится отличным выбором
От чего зависит плавность сайтов? Имею в виду разные эфекты появления меню, слайдеры, скроллы и тпСделал меню, на пк проверяю все нормально,...
Есть selectbox инклюдит php файлы по выборуФайлы находятся для инклюда в этой же директории category1
Добрый день! Делаю приложение на андроид, решил взять интерфейс с NavigationDrawer и фрагментамиТо есть, в дравере несколько вкладок, при нажатии...
Есть jsp-страница, на нее я передаю в select список стран, у каждой страны есть список городов, который есть в моей БД отдельной таблицейКак сделать...