我有 2 个数组:
var a = [1, 2, 3]
var b = [a, b, c]
我想得到的结果是:
[[1, a], [2, b], [3, c]]
看起来很简单,但我就是想不通。
我希望结果是一个数组,其中两个数组中的每个元素都压缩在一起。
我有 2 个数组:
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)
const zip = (a, b) => a.map((k, i) => [k, b[i]]);
console.log(zip([1,2,3], ["a","b","c"]));
// [[1, "a"], [2, "b"], [3, "c"]]
const zip = (a, b) => Array.from(Array(Math.max(b.length, a.length)), (_, i) => [a[i], b[i]]);
console.log( zip([1,2,3], ["a","b","c","d"]) );
// [[1, "a"], [2, "b"], [3, "c"], [undefined, "d"]]
使用Array.prototype.fill()和Array.prototype.map()
const zip = (a, b) => Array(Math.max(b.length, a.length)).fill().map((_,i) => [a[i], b[i]]);
console.log(zip([1,2,3], ["a","b","c","d"]));
// [[1, "a"], [2, "b"], [3, "c"], [undefined, "d"]]