如何在JavaScript中用2D较小的数组填充2D数组

如何在JavaScript中用2D较小的数组填充2D数组,javascript,arrays,reactjs,Javascript,Arrays,Reactjs,如果没有很好的解释,我道歉。我对JavaScript还很陌生 我有一个10x10的2D阵列和一个5x8的2D阵列。默认情况下,较小的arrayB填充数据,较大的arrayA仅填充0 如何将数据从arrayB移动到arrayA,同时仍将arrayA的剩余空间保留为0 最终结果必须是arrayA应该以与arrayB相同的顺序包含所有数据,但剩余空间仍然只包含0。假设我正确理解了这个问题,您可以循环使用arrayB的每个值,并将其分配到arrayA中的相同索引中: const arrayA=Arra

如果没有很好的解释,我道歉。我对JavaScript还很陌生

我有一个10x10的2D阵列和一个5x8的2D阵列。默认情况下,较小的arrayB填充数据,较大的arrayA仅填充0

如何将数据从arrayB移动到arrayA,同时仍将arrayA的剩余空间保留为0


最终结果必须是arrayA应该以与arrayB相同的顺序包含所有数据,但剩余空间仍然只包含0。假设我正确理解了这个问题,您可以循环使用
arrayB
的每个值,并将其分配到
arrayA
中的相同索引中:

const arrayA=Array(10).fill(0).map(=>Array(10).fill(0))
常量arrayB=Array(5).fill(0).map(=>Array(8).fill(1))
for(设y=0;yv.join(',')).join('\n'))
一个简单的
Array.map()
将完成以下任务:

const arrA=[
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
];
常数arrB=[
[0,1,2,3,4],
[0,1,2,3,4],
[0,1,2,3,4],
[0,1,2,3,4],
[0,1,2,3,4],
[0,1,2,3,4],
[0,1,2,3,4],
[0,1,2,3,4],
];
常量B2A=()=>arrA.map(
(val,index)=>val.map(
(subVal,subIndex)=>{
if(arrB[index]&&arrB[index][subIndex])返回arrB[index][subIndex]
返回subVal;
})
)

log(B2A())
使用
Array.from
并迭代,同时迭代检查填充数组中是否存在该值。如果存在,则使用该值,否则使用相同的数组值

const fill=(arr1,arr2)=>
Array.from(arr1,(arr,row)=>
Array.from(arr,(value,col)=>(arr2[row]&&arr2[row][col])| | value)
);
常量arrA=[
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
];
常数arrB=[
[0, 1, 2, 3, 4],
[0, 1, 2, 3, 4],
[0, 1, 2, 3, 4],
[0, 1, 2, 3, 4],
[0, 1, 2, 3, 4],
[0, 1, 2, 3, 4],
[0, 1, 2, 3, 4],
[0, 1, 2, 3, 4]
];

log(JSON.stringify(fill(arrA,arrB))请发布一些代码和您的尝试。您想让B在A中“居中”吗?我的理解正确吗?感谢@Mose添加带有数据的数组。我在回答中使用了这一点。:)