Ostrov
Ostrov

Reputation: 129

Making 2 dimensoinal array from csv

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

Answers (4)

Emil S. Jørgensen
Emil S. Jørgensen

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

Kasmetski
Kasmetski

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

rbntd
rbntd

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);

JsFiddle

Upvotes: 0

JLikho
JLikho

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

Related Questions