如何在javascript中获取多维数组中的数组的键和值

时间:2016-11-04 21:37:31

标签: javascript multidimensional-array rxjs

我有一个多维数组,例如

MultArrary = [
['a','b'],
['c','d'],
['f','g']
]

我需要的是获取数组中每个数组的键和值,并将其推入另一个数组

Expected array1 = ['a','c','f'];
expected array2 = ['b','d','g'];

任何有关如何使用javascript或rxjs实现此目标的想法都会很棒

3 个答案:

答案 0 :(得分:2)

在您的情况下,最容易做的事情(虽然在语法上不正确,请参阅您的问题下面的评论)是使用Map(假设您在具有ecmascript6功能的环境中):



    var MultiArray = [
      ['a', 'b'],
      ['c', 'd'],
      ['f', 'g']
    ];

    var m = new Map(MultiArray);

    var index0 = Array.from(m.keys());
    var index1 = Array.from(m.values());

    console.log(index0, index1);




答案 1 :(得分:1)

使用Underscore.js可以使用unzip



var MultArrary = [
  ['a', 'b'],
  ['c', 'd'],
  ['f', 'g']
];

var rst = _.unzip(MultArrary);

//[['a','c','f'],['b','d','g']]
console.log(rst);

<script data-require="underscore.js@1.8.3" data-semver="1.8.3" src="//cdnjs.cloudflare.com/ajax/libs/underscore.js/1.8.3/underscore-min.js"></script>
&#13;
&#13;
&#13;

答案 2 :(得分:0)

您可以使用单一方法并将结果构建在一个任务中。

您想要的结果位于pivot[1]var multArrary = [['a', 'b'], ['c', 'd'], ['f', 'g']], pivot = multArrary.reduce(function (r, a) { a.forEach(function (b, i) { r[i] = r[i] || []; r[i].push(b); }); return r; }, []); console.log(pivot);

<a class="navbar-brand" href="#"><img alt="Brand" src="images/logo.png"        class="img-responsive" /></a>