var a = [1, 2, 3]
var b = [a, b, c]
我想要得到的結果是:
[[1, a], [2, b], [3, c]]
它似乎很簡單,但我就是想不通。
我想要結果是一個數組與兩個數組中的每個元素壓縮在一起。
var a = [1, 2, 3]
var b = [a, b, c]
我想要得到的結果是:
[[1, a], [2, b], [3, c]]
它似乎很簡單,但我就是想不通。
我想要結果是一個數組與兩個數組中的每個元素壓縮在一起。
使用map
方法:
var a = [1, 2, 3]
var b = ['a', 'b', 'c']
var c = a.map(function(e, i) {
return [e, b[i]];
});
console.log(c)
總的JavaScript noob在這裏,但我的印象是索引必須在元素之前?也就是.map(function(index,element))? – runawaykid
@runawaykid答案是正確的。你可以在回調參數中看到[MDN map文檔](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map#Parameters)。參數是(按順序):'currentvalue','index','array' – icc97
使用箭頭符號甚至更好一點:var c = a.map((e,i)=> [e,b [i] ]); – marczoid
Array.prototype.map()
is not supported in older browsers,
Feature Chrome Firefox (Gecko) Internet Explorer Opera Safari
Basic support (Yes) 1.5 (1.8) 9 (Yes) (Yes)
所以......
var a = [1,2,3],
b = ['a','b','c'];
var c = [];
for(var i=0; i<a.length; i++){
c.push([a[i], b[i]]);
}
console.log(c); // [[1, "a"], [2, "b"], [3, "c"]]
謝謝你。在我的環境中正式映射工作,但我已經記錄了這種方法以防萬一。 – userMod2
注意陣圖()不是在IE8支持,如果這是一個問題。這裏填寫https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map – TimHayes
這個問題不是重複的,因爲它只要求* 2 *數組被壓縮而不是* N *數組。因此,這是一個特殊的情況,其中有專門的,更高性能的解決方案。 –