首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >获取每个元素的Javascript 2D数组

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

Stack Overflow用户
提问于 2017-08-16 22:38:22
回答 3查看 271关注 0票数 0

我有一个二维数组,如下所示:

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

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

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2017-08-16 22:44:17

您可以使用map来完成此操作,并对结果执行shift以删除第一个匹配项。

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

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

console.log(result);

票数 4
EN

Stack Overflow用户

发布于 2017-08-16 23:01:37

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

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

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;
票数 1
EN

Stack Overflow用户

发布于 2017-08-16 22:54:10

这看起来就是您想要实现的目标:

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

  labels.push(example[i][0])
  data.push(example[i][1])
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45716540

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档