我有一個多維數組如如何獲得多維數組內數組的鍵和值在JavaScript
MultArrary = [
['a','b'],
['c','d'],
['f','g']
]
我需要的是得到數組內的每個陣列的鑰匙,和值,並將其推入另一個陣列
Expected array1 = ['a','c','f'];
expected array2 = ['b','d','g'];
任何想法如何使用JavaScript來實現這個或rxjs將是巨大的
我有一個多維數組如如何獲得多維數組內數組的鍵和值在JavaScript
MultArrary = [
['a','b'],
['c','d'],
['f','g']
]
我需要的是得到數組內的每個陣列的鑰匙,和值,並將其推入另一個陣列
Expected array1 = ['a','c','f'];
expected array2 = ['b','d','g'];
任何想法如何使用JavaScript來實現這個或rxjs將是巨大的
做的(而不是syntatically正確的最簡單的事,見下面的評論你在你的情況的問題)是使用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);
美麗的使用'Map'和'Array.from'。 –
使用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="[email protected]" data-semver="1.8.3" src="//cdnjs.cloudflare.com/ajax/libs/underscore.js/1.8.3/underscore-min.js"></script>
您可以使用單一方法並在一個任務中生成結果。
您想要結算的是pivot[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);
你沒有得到的鍵的任何地方。你只是在特定索引處獲取值。 –
這些並不是真正的「關鍵」和「價值觀」,它們都是價值。一個恰好是索引零,另一個是索引一。你應該知道如何做到這一點,如果你可以處理數組。 – vlaz
所以,我們已經看到了您的要求,但我沒有看到您嘗試過的任何代碼。看起來你需要一些'map'調用,或者可能需要'reduce'。也許你可以看看這些功能,看看你能做什麼。 –