reactjs 将数组添加到另一个数组,并保持相同的索引数

kokeuurv  于 2022-11-04  发布在  React
关注(0)|答案(4)|浏览(278)

我有一个数组A,我试图把它和数组B连接起来,而数组B保持相同的索引数。
例如:

const array_A = [1, 2, 3, 4];
const array_B = [0, 0, 0, 0, 0, 0, 0];

结果应该如下所示

const result = [1, 2, 3, 4, 0, 0, 0];

我尝试过这种方法

const result = array_A.concat(array_B);
console.log(result);

但是我得到了11个索引数组,而我只需要7个索引的数组。

[1, 2, 3, 4, 0, 0, 0, 0, 0, 0, 0];
gcxthw6b

gcxthw6b1#

您可以对第二个数组执行map,并检查第一个数组在该索引处是否有值。

array_B.map((n, i) => array_A[i] ?? n)

如果索引处的值可以为null / undefined,则?? operator将忽略该值并使用array_B值。

array_B.map((n, i) => i in array_A ? array_A[i] : n)

下面是一个片段:

const array_A = [1, 2, 3, 4],
      array_B = [0, 0, 0, 0, 0, 0, 0],
      output1 = array_B.map((n, i) => array_A[i] ?? n),
      output2 = array_B.map((n, i) => i in array_A ? array_A[i] : n)

console.log(...output1)
console.log(...output2)
yhived7q

yhived7q2#

您可以执行以下操作:

const array_A = [1, 2, 3, 4];
const array_B = [0, 0, 0, 0, 0, 0, 0];

for (let i = array_A.length - 1; i >= 0; i--) {
  array_B.pop()
  array_B.unshift(array_A[i])
}

console.log(array_B)

使用pop()弹出第二个数组的最后一个元素,即array_B,然后使用unshift()方法从前面插入array_Aarray_B的元素。必须针对array_A中的元素循环

qqrboqgw

qqrboqgw3#

您可以在Array_A上使用for或forEach循环,然后将Array_B的值替换为Array_A的值

const A = [1, 2, 3, 4];
const B = [0, 0, 0, 0, 0, 0, 0];

A.forEach((val, i) => {
  B[i] = val;
})

console.log(B) // [ 1, 2, 3, 4, 0, 0, 0 ]
u5rb5r59

u5rb5r594#

我们通常不会考虑将Object.assign用于数组,但它可以很好地用于数组。我们可以这样做,然后剥离覆盖数组,使其包含基数组中的元素数,然后执行Object .assingn,即Object .assign ([...b], a .slice (0, b .length))Object .assign ([], b, a .slice (0, b .length)),具体由您选择:
第一个

相关问题