let userData = {
myData: [{
id: 1,
name: 'Russell',
country: 'Windes'
},
{
id: 2,
name: 'Smith',
country: 'USA'
}
],
ownerData: [{
id: 3,
name: 'Watson',
country: 'Australia'
},
{
id: 4,
name: 'Marcus',
country: 'England'
}
]
};
let records = arrayMapped(userData)
.then(res => console.log(res));
async function arrayMapped(user) {
let best4 = [];
user.myData.forEach(async(res, i) => {
res.myTeam = [];
user.ownerData.forEach(async(myTeam, j) => {
res.myTeam = myTeam;
});
best4.push(res);
});
return best4;
}
阵列推送行为weired
我原以为我的团队id 3应该低于1 id,而我的团队4 id应该低于2 id。
但目前它是采取4 id所有是什么原因请引导
感谢
您似乎希望并行迭代两个数组,因此不应该使用嵌套循环。只需使用myData
循环的索引作为ownerData
数组的索引。
let userData = {
myData: [{
id: 1,
name: 'Russell',
country: 'Windes'
},
{
id: 2,
name: 'Smith',
country: 'USA'
}
],
ownerData: [{
id: 3,
name: 'Watson',
country: 'Australia'
},
{
id: 4,
name: 'Marcus',
country: 'England'
}
]
};
let records = arrayMapped(userData)
.then(res => console.log(res));
async function arrayMapped(user) {
let best4 = [];
user.myData.forEach(async(res, i) => {
res.myTeam = user.ownerData[i];
best4.push(res);
});
return best4;
}
我注意到您有声明为async
的函数,但它们不会异步执行任何操作。如果真正的函数是这样做的,请参阅使用带有forEach循环的async/await