[英]Javascript foreach (Multi array)
I got this javascript code wherein im trying to access the "recommendedTo" array but, when im trying to access it via foreach it just returns as a [array] and not the exact values of the array. 我得到了这个javascript代码,其中我尝试访问“ recommendedTo”数组,但是当我尝试通过foreach访问它时,它只是作为[array]返回,而不是数组的确切值。
What am i doing wrong? 我究竟做错了什么?
let requestBody = {
"recommendations":[
{
"book" : "12",
"recommendedTo" : [
{
"employeeId" : "22"
},
{
"employeeId" : "44"
}
]
},
{
"book": "13",
"recommendedTo":[
{
"employeeId": "2"
},
{
"employeeId": "3"
}
]
}
]
};
let messageBody = {
recommendations: []
};
if (Array.isArray(requestBody.recommendations)) {
requestBody.recommendations.forEach(function(books, index) {
messageBody.recommendations.push({
book: books.book,
recommended:[]
});
requestBody.recommendations[index].recommendedTo.forEach(function(book2, index2){
messageBody.recommendations[index].recommended.push({
employeeId: book2.employeeId,
})
});
});
}
console.log(messageBody)
A much cleaner solution 更清洁的解决方案
for(let recommendation of requestBody.recommendations){
for(let recommendedTo of recommendation.recommendedTo){
console.log(recommendation);
console.log(recommendedTo);
}
}
While your code works,this is actually a really good usecase for map: 当您的代码有效时,这实际上是map的一个很好的用例:
const messageBody = {
recommendations: requestBody.recommendations.map(({book, recommendedTo}) => ({
book,
recommended: recommendedTo.map(({employeeId}) => ({employeeId}))
}))
};
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.