13.04.2018, 16:27
|
Профессор
|
|
Регистрация: 25.09.2017
Сообщений: 186
|
|
Спарсил 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
А как из него данные получить? Мне вообще нужно чтобы это был многомерный массив))
|
|
13.04.2018, 16:41
|
Профессор
|
|
Регистрация: 27.11.2015
Сообщений: 2,899
|
|
Вообще-то у вас и получился двумерный массив такого вида
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]);
|
|
13.04.2018, 16:42
|
Профессор
|
|
Регистрация: 04.12.2012
Сообщений: 3,800
|
|
Двумерный массив:
console.log(result.data);
|
|
13.04.2018, 16:44
|
Профессор
|
|
Регистрация: 25.09.2017
Сообщений: 186
|
|
Сообщение от Dilettante_Pro
|
Вообще-то у вас и получился двумерный массив такого вида
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]);
|
Вот я олух... Я какие названия не подставлял))
но то что этот массив называется data - не догадался.
Так, интересно, а если я другой файл так же сделаю. Тоже толи будет data будет называться...
|
|
13.04.2018, 16:49
|
Профессор
|
|
Регистрация: 27.11.2015
Сообщений: 2,899
|
|
Сообщение от the_little
|
но то что этот массив называется data
|
Точнее, result.data - смотрите пост от Nexus. Но, поскольку у меня вашего result нету - я показал попроще
|
|
17.04.2018, 09:29
|
Профессор
|
|
Регистрация: 25.09.2017
Сообщений: 186
|
|
Вопрос такой тогда.
Парсинга происходит при загрузке страницы.
И есть функция, в которой мне нужно обращаться к данным этого массива.
Выглядит так
$(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);
});
});
|
|
17.04.2018, 09:39
|
Профессор
|
|
Регистрация: 04.12.2012
Сообщений: 3,800
|
|
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);
});
});
});
Последний раз редактировалось Nexus, 17.04.2018 в 11:34.
|
|
17.04.2018, 11:26
|
Профессор
|
|
Регистрация: 25.09.2017
Сообщений: 186
|
|
Сделал так. Консоль чистая...
$(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);
});
});
});
|
|
17.04.2018, 11:33
|
Профессор
|
|
Регистрация: 04.12.2012
Сообщений: 3,800
|
|
the_little, значит асинхронный запрос завершился фейлом.
Смотрите вкладку "network".
Изменил 7й пост, попробуйте так.
Я переименовал опцию "complete" в "success" и с чего-то решил, что это должно работать...
|
|
17.04.2018, 12:05
|
Профессор
|
|
Регистрация: 25.09.2017
Сообщений: 186
|
|
Поменял на complete, все заработало. Спасибо!
Я правильно понимаю, что для других парсеров я могу вот тут менять название переменной
var getData=new Promise(function(resolve){
И тогда потом здесь нужную подставлять в зависимости от условий
getData.then(function(data){
var price = checkArr(data,7,4);
console.log(price);
});
|
|
|
|