我有一个多维数组,例如
MultArrary = [
['a','b'],
['c','d'],
['f','g']
]
我需要的是获取数组中每个数组的键和值,并将其推入另一个数组
Expected array1 = ['a','c','f'];
expected array2 = ['b','d','g'];
任何有关如何使用javascript或rxjs实现此目标的想法都会很棒
答案 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;
答案 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>