JavaScript根据数据组合多个数组

JavaScript根据数据组合多个数组,javascript,Javascript,当type等于all时,我需要将两个数组合并为一个数组。我有代码,但结果不正确。 const arr=[{value:'aa'},{value:'bb'}]; 常量arr2=[{type:'all'},{type:'text',value:'a2'},{type:'all'}] arr.forEach((项目、索引)=>{ arr2.forEach((项目、索引)=>{ 如果(items.type==='all'){ items.value=arr[index].value } }) }) l

当type等于all时,我需要将两个数组合并为一个数组。我有代码,但结果不正确。

const arr=[{value:'aa'},{value:'bb'}];
常量arr2=[{type:'all'},{type:'text',value:'a2'},{type:'all'}]
arr.forEach((项目、索引)=>{
arr2.forEach((项目、索引)=>{
如果(items.type==='all'){
items.value=arr[index].value
}
})
})

log(arr2)
改变正在循环的数据不是一个好主意

如果我理解正确,当type为
all
时,您需要遍历
arr2
并穿插
arr
中的项目

我会用
Array.map
来做这类事情:

const arr=[{value:'aa'},{value:'bb'}];
常量arr2=[{type:'all'},{type:'text',value:'a2'},{type:'all'}]
const combined=arr2.map(({type,…rest})=>type=='all'?{type,…arr.shift()}:{type,…rest})

console.log(组合)
感谢您的回复。