动态构建二维数组 Javascript

Dynamically build 2D array Javascript

我想动态构建一个二维数组,但遇到了问题。

答案和投票(单个字符串数组)的长度始终相同;

我需要这样的数组:

var data = 
        [['Answer', 'Votes'],
        [answers[0],  parseInt(votes[0])],
        [answers[1],  parseInt(votes[1])],
        [answers[2],  parseInt(votes[2])],
          ....
        ];

这不行;

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?
}

试试这个:

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)
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()*/
}

试试这个:

var data = [];
var arrayLength = answers.length;
for (var i = 0; i < arrayLength; i++) {
    data.push([answers[i], votes[i]]);
}

既然你写了 answers [i]votes[i] 所以,你的答案和投票似乎在两个不同的数组中。那么为什么需要循环。

假设答案和投票数是:

var answers = ["A", "B", "C", "D", "E", "F"];
var votes = ["1", "2", "3", "4", "5", "6"];

建立新数组

var data = ["Answers", "Votes"];

data.Answers=answers;
data.Votes=votes;

console.log(data);