Reputation: 129
here is my csv,
Nejvíce za měsíc;;
1.;Jack;900
2.;George;850
3.;Martin;800
4.;John;700
5.;Martin;701
In my code I loading it from dropbox
$.ajax({
url: 'https://dl.dropboxusercontent.com/s/11ofmbg4d4y3gb0/Top.csv',
dataType: 'text',
}).done(successFunction);
My code creates only 1 dimensional array.
function successFunction(data) {
var promenna = data.split(";");
console.log(promenna);
}
I would like to create array from it and it should like this. How can I do that?
var promenna = [
["Nejvíce za měsíc", "900"],
["Jack", "900"],
["George", "850"],
["Martin", "800"],
["John", "700"],
["Martin", "701"],
];
Upvotes: 1
Views: 54
Reputation: 6366
Join via with splice
on the resulting array.
var arr = [
'Nejvíce za měsíc',
'',
'Jack',
900,
'George',
850,
'Martin',
800,
'John',
700,
'Martin',
701
];
for (var i = 0; i < arr.length; i++) {
arr[i] = [arr[i], arr.splice(i + 1, 1).pop()];
}
console.log(arr)
Upvotes: 0
Reputation: 705
Little correction in your code and its working. You can try it in your browser console;
$.ajax({
url: 'https://dl.dropboxusercontent.com/s/11ofmbg4d4y3gb0/Top.csv',
dataType: 'text',
}).done(successFunction);
function successFunction(data) {
var promenna = data.split(";"),
tempArr = [],
len = promenna.length;
for (let i = 0; i <= len; i += 2) {
tempArr.push([promenna[i], promenna[i+1]]);
}
console.log(tempArr);
}
Upvotes: 1
Reputation: 391
You can use something like this :
var data = "1.;Jack;900\n" +
"2.;George;850\n" +
"3.;Martin;800";
var promenna = data.replace(/\n/g,";").split(";");
var result = [];
console.log(promenna);
for(var i = 0; i < promenna.length; i+=3) {
var line = [];
line.push(promenna[i+1]);
line.push(promenna[i+2]);
result.push(line);
}
console.log(result);
Upvotes: 0
Reputation: 51
DEclare an array first then push your results into that array
function successFunction(data) {
var finalArray = new Array();
var promenna = data.split(";");
finalArray.push(promenna);
console.log(finalArray);
}
Upvotes: 0