从在JavaScript两个一维阵列中的成对的元件创建的2D阵列

问题描述 投票:1回答:6

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]]
}

我想创建一个二维数组C,使得该 C = [[1,6],[2,7],[3,8],[4,9],[5,10]]

javascript multidimensional-array
6个回答
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);

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
投票
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排列。很简单,不是吗?


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)

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)

Better way: using 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);

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; }
© www.soinside.com 2019 - 2024. All rights reserved.