使用JavaScript中两个1D数组的成对元素创建2D数组

时间:2019-02-03 05:25:44

标签: javascript multidimensional-array

const A = [1,2,3,4,5]
const B = [6,7,8,9,10]
const C = [];
for (let j=0; j<A.length;j++){
  C[j] = C[[A[j],B[j]]
}

我想创建一个2D数组C,这样
C = [[1,6],[2,7],[3,8],[4,9],[5,10]]

6 个答案:

答案 0 :(得分:1)

尝试一下:

const A = [1,2,3,4,5]
const B = [6,7,8,9,10]
const C = A.map((_,i)=>[A[i],B[i]])
console.log(C);

答案 1 :(得分:1)

您只需要C[[A[j],B[j]]更正此行。通过此行,您尝试访问[A[j],B[j]]中的索引C,而不是您想要的(undefined

const A = [1,2,3,4,5]
const B = [6,7,8,9,10]
const C = [];
for (let j=0; j<A.length;j++){
 C[j] = [A[j],B[j]]
}

console.log(C)

答案 2 :(得分:1)

需要将C[j] = C[[A[j],B[j]]替换为C[j] = [A[j],B[j]]。因为C[[A[j],B[j]]undefined

const A = [1,2,3,4,5]
const B = [6,7,8,9,10]
const C = [];
for(let j = 0;j<A.length;j++){
  C[j] = [A[j],B[j]];
}
console.log(C)

更好的方式:使用map()
const A = [1,2,3,4,5]
const B = [6,7,8,9,10]
const C = A.map((item, i) => ([item,B[i]]));
console.log(C);

答案 3 :(得分:1)

您可以使用Array.prototype.map()

代码:

const A = [1,2,3,4,5]
const B = [6,7,8,9,10]
const C = A.map((item, index) => ([item, B[index]]));

console.log(C);

答案 4 :(得分:1)

如果您将给定的两个数组作为带有行的新数组,那么您正在寻找的是一种将行切换为列的转置算法。

const
    transpose = array => array.reduce((r, a) => a.map((v, i) => [...(r[i] || []), v]), []),
    a = [1, 2, 3, 4, 5],
    b = [6, 7, 8, 9, 10],
    c = transpose([a, b]);

console.log(c);
.as-console-wrapper { max-height: 100% !important; top: 0; }

答案 5 :(得分:0)

const A = [1,2,3,4,5]
const B = [6,7,8,9,10]
const C = [];
for (let j=0; j<A.length;j++){
 C.push([A[j],B[j]]);
}

在第5行,我们创建一个2个值的数组(一个来自A,另一个来自B),然后将数组推入A数组。 很简单,不是吗?