获取每个元素的Javascript 2D数组

时间:2017-08-16 14:38:22

标签: javascript for-loop chart.js

我有一个看起来像的二维数组:

var example = [['Version', 'Number'], [ 'V1.0', 1 ], [ 'V2.0', 2 ]];

我想遍历数组并取出'V1.0'和'V2.0'并将它们存储在自己的新数组中,并为'1'和'2'执行相同操作。我需要打破数据以便与Chart.js一起使用

我的循环看起来像这样:

var labels = [];
var data = [];

for (var i=0; i<example.length; i++) {
    labels.push = (example[i][0]);
}

for (var j=0; j<example.length; j++) {
    data.push = (example[0][j]);
}

我不知道如何正确地将这两个元素放入他们自己的数组中以供以后使用。

3 个答案:

答案 0 :(得分:4)

您可以使用map执行此操作,并使用shift结果删除第一次出现。

var example = [
  ['Version', 'Number'],
  ['V1.0', 1],
  ['V2.0', 2]
];

var result = example.map(e => e[0])

console.log(result);

答案 1 :(得分:1)

从我看到的示例中,第一对元素是数据的关键,您的示例将它们包含在最终数组中。

此示例将生成一个字典,其中包含数字和版本,其中包含数组中的相应值。

var example = [['Version', 'Number'], [ 'V1.0', 1 ], [ 'V2.0', 2 ]];

function extract(items) {
  var keys = {},
      version = items[0][0],
      number = items[0][1];
  
  keys[version] = [];
  keys[number] = [];
   
  return items.slice(1).reduce(function(acc, item) {
    acc[version].push(item[0]);    
    acc[number].push(item[1]);
    
    return acc;
  }, keys);
}

var result = extract(example);
console.log(result);

从这一点开始,您可以执行以下操作:

var labels = result.Version;
var data = result.Number;

答案 2 :(得分:0)

这看起来像你想要实现的目标:

for(var i=0; i<example.length; i++){

  labels.push(example[i][0])
  data.push(example[i][1])
}