Reputation: 597
I want to build a 2 dimensional array dynamically, but I'm having trouble.
answers and votes (single string arrays) will always be the same length;
I need an array like this:
var data =
[['Answer', 'Votes'],
[answers[0], parseInt(votes[0])],
[answers[1], parseInt(votes[1])],
[answers[2], parseInt(votes[2])],
....
];
This doesn't work;
var data[];
var arrayLength = answers.length;
for (var i = 0; i < arrayLength; i++) {
data += [answers[i], votes[i]]; //**Maybe the only line that needs tweaking?
}
Upvotes: 0
Views: 44
Reputation: 10665
Try this:
var data = [];
data[0] = ['answers','votes']
var arrayLength = answers.length;
for (var i = 0; i < arrayLength; i++) {
data[i+1]= [answers[i], parseInt(votes[i])];
}
//check
console.table(data)
Upvotes: 1
Reputation: 120
Since you wrote answers [i]
and votes[i]
so, it seems your answers and votes are in two different array. so why the loop is needed.
Suppose answers and votes are:
var answers = ["A", "B", "C", "D", "E", "F"];
var votes = ["1", "2", "3", "4", "5", "6"];
building new array
var data = ["Answers", "Votes"];
data.Answers=answers;
data.Votes=votes;
console.log(data);
Upvotes: 0
Reputation: 1331
var data = [];
var arrayLength = answers.length;
data[0] = ['Answer', 'Votes'];
for (var i = 1; i < arrayLength; i++) {
data.push([answers[i], votes[i]]); /*It's not += but .push()*/
}
Upvotes: 1
Reputation: 36
Try this:
var data = [];
var arrayLength = answers.length;
for (var i = 0; i < arrayLength; i++) {
data.push([answers[i], votes[i]]);
}
Upvotes: 0