使用JavaScript ES6 Reduce方法基于2个数组创建结果数组
您好,实际上我有两个数组(服务和提供),我正在尝试使用reduce方法基于服务id将提供数组与服务数组连接起来,我尝试了不同的方法,但没有任何效果。我无法解决此检查问题(无法连接提供数组)。请帮我解决这个问题。提前谢谢使用JavaScript ES6 Reduce方法基于2个数组创建结果数组,javascript,arrays,ecmascript-6,reduce,Javascript,Arrays,Ecmascript 6,Reduce,您好,实际上我有两个数组(服务和提供),我正在尝试使用reduce方法基于服务id将提供数组与服务数组连接起来,我尝试了不同的方法,但没有任何效果。我无法解决此检查问题(无法连接提供数组)。请帮我解决这个问题。提前谢谢 const services = [ { cid:1, catname:'Facial', services:[
const services = [
{
cid:1,
catname:'Facial',
services:[
{
sid:30,
sname:'Fruit facial'
},
{
sid:33,
sname:'Herbal facial'
}
]
},
{
cid:2,
catname:'Massage',
services:[
{
sid:40,
sname:'Head Massage'
},
{
sid:45,
sname:'Back Massage'
},
{
sid:46,
sname:'Face Massage'
}
]
}
]
提供阵列-此处基于服务id(sid),我希望连接服务阵列并创建新阵列
const offer = [
{
offid:1,
sid:'33,40'
offvalue : 10%
},
{
offid:2,
sid:'45,46',
offvalue : 100
}
]
预期结果:
const Result = [
{
cid:1,
catname:'Facial',
services:[
{
sid:30,
sname:'Fruit facial'
},
{
sid:33,
sname:'Herbal facial',
offid:1,
offvalue : 10%
}
]
},
{
cid:2,
catname:'Massage',
services:[
{
sid:40,
sname:'Head Massage',
offid:1,
offvalue : 10%
},
{
sid:45,
sname:'Back Massage',
offid:2,
offvalue : 100
},
{
sid:46,
sname:'Face Massage',
offid:2,
offvalue : 100
}
]
}
]
如果您可以使用ES6功能,那么这应该可以:
const服务=[{
cid:1,
猫名:'面部',
服务:[{
希德:30,
sname:“水果面膜”
}, {
希德:33,
sname:“草药美容”
}],
}, {
cid:2,
猫名:'按摩',
服务:[{
希德:40,
sname:“头部按摩”
}, {
希德:45,
sname:“背部按摩”
}, {
希德:46,
sname:“面部按摩”
}],
}];
常数报价=[{
办公室:1,
希德:“33,40”,
offvalue:“10%”
}, {
办公室:2,
希德:“45,46”,
offvalue:“100”
}];
const result=services.map(val=>{
返回{
…瓦尔,
服务:val.services.map(serv=>{
//在这里,我们可以找到任何匹配的报价,然后将其数据添加到服务中。
const off=offer.find(x=>x.sid.split(“,”).includes(String(serv.sid));
如果(关闭){
serv.offid=off.offid;
serv.offvalue=off.offvalue;
}
返回服务;
}),
}
});
控制台日志(结果)代码>您尝试了什么?请将您的代码显示为@Andy hi请检查我的链接我尝试了,因为我是JavaScript新手,所以无法完成