Спарсил csv, а чего дальше не понимаю...
Всем привет!
В общем спарсил я файл csv. в лог выводится такой вот 'result' {data: Array(6), errors: Array(0), meta: {…}} data:Array(6) 0:(6) ["0", "column1", "column2", "column3", "column4", "column5"] 1:(6) ["row1", "1", "2", "3", "4", "5"] 2:(6) ["row2", "6", "7", "8", "9", "10"] 3:(6) ["row3", "11", "12", "13", "14", "15"] 4:(6) ["row4", "16", "17", "18", "19", "20"] 5:(6) ["row5", "21", "22", "23", "24", "25"] length:6 __proto__:Array(0) errors:Array(0) length:0 __proto__:Array(0) meta:{delimiter: ";", linebreak: "↵", aborted: false, truncated: false, cursor: 137} __proto__:Object А как из него данные получить? Мне вообще нужно чтобы это был многомерный массив)) |
Вообще-то у вас и получился двумерный массив такого вида
var data = [["0", "column1", "column2", "column3", "column4", "column5"], ["row1", "1", "2", "3", "4", "5"], ["row2", "6", "7", "8", "9", "10"], ["row3", "11", "12", "13", "14", "15"], ["row4", "16", "17", "18", "19", "20"], ["row5", "21", "22", "23", "24", "25"]]; alert(data[5][0] + " " + data[0][5] + " " + data[5][5]); |
Двумерный массив:
console.log(result.data); |
Цитата:
но то что этот массив называется data - не догадался. Так, интересно, а если я другой файл так же сделаю. Тоже толи будет data будет называться... |
Цитата:
|
Вопрос такой тогда.
Парсинга происходит при загрузке страницы. И есть функция, в которой мне нужно обращаться к данным этого массива. Выглядит так $(document).ready(function() { Papa.parse("/testArr.csv", { download: true, header: false, complete: function(results) { console.log(results.data); } }); $('.start-calc').click(function changeFunc() { var type = $('#type-okno').val(); var gluh = $('#type-otkidnoe').val(); var img = $('#okno-img'); var imgtitle = $('#img-title'); function checkArr(arr,a,b) { return arr[arr.findIndex(el=>el[0]>a)][arr[0].findIndex(el=>el>b)]; } var price = checkArr(results.data,7,4); }); }); |
the_little, можно так попробовать:
$(document).ready(function() { var getData=new Promise(function(resolve){ Papa.parse("/testArr.csv", { download: true, header: false, complete: function(results) { resolve(results.data); } }); }); $('.start-calc').click(function changeFunc() { var type = $('#type-okno').val(); var gluh = $('#type-otkidnoe').val(); var img = $('#okno-img'); var imgtitle = $('#img-title'); function checkArr(arr,a,b) { return arr[arr.findIndex(el=>el[0]>a)][arr[0].findIndex(el=>el>b)]; } getData.then(function(data){ var price = checkArr(data,7,4); }); }); }); |
Сделал так. Консоль чистая...
$(document).ready(function() { var getData=new Promise(function(resolve){ Papa.parse("/testArr.csv", { download: true, header: false, success: function(results) { resolve(results.data); } }); }); $('.start-calc').click(function changeFunc() { var type = $('#type-okno').val(); var gluh = $('#type-otkidnoe').val(); var img = $('#okno-img'); var imgtitle = $('#img-title'); function checkArr(arr,a,b) { return arr[arr.findIndex(el=>el[0]>a)][arr[0].findIndex(el=>el>b)]; } getData.then(function(data){ var price = checkArr(data,7,4); console.log(price); }); }); }); |
the_little, значит асинхронный запрос завершился фейлом.
Смотрите вкладку "network". Изменил 7й пост, попробуйте так. Я переименовал опцию "complete" в "success" и с чего-то решил, что это должно работать... |
Поменял на complete, все заработало. Спасибо!
Я правильно понимаю, что для других парсеров я могу вот тут менять название переменной var getData=new Promise(function(resolve){ И тогда потом здесь нужную подставлять в зависимости от условий getData.then(function(data){ var price = checkArr(data,7,4); console.log(price); }); |
the_little, правильно, только про область видимости не забывайте.
|
Цитата:
Там просто добавится IF ELSE и в зависимости от условий нужно будет брать цены из разных таблиц. Там просто таблицы большие, примерно 100х100 ячеек, в массив не хотелось их загонять) Вот решил попробовать с парсингом) |
Часовой пояс GMT +3, время: 14:28. |