Спарсил 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);
});
|
| Часовой пояс GMT +3, время: 23:45. |