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?
}
-
does answers array has the same length with the votes array?Jesse– Jesse2015年03月06日 06:04:33 +00:00Commented Mar 6, 2015 at 6:04
4 Answers 4
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)
answered Mar 6, 2015 at 6:03
dsharew
10.7k6 gold badges55 silver badges76 bronze badges
Sign up to request clarification or add additional context in comments.
Comments
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()*/
}
Try this:
var data = [];
var arrayLength = answers.length;
for (var i = 0; i < arrayLength; i++) {
data.push([answers[i], votes[i]]);
}
answered Mar 6, 2015 at 6:07
David O'Rand Hasenjaeger
363 bronze badges
Comments
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);
Comments
lang-js