Javascript 使用ramda.js获取嵌套对象数组中键的所有值
我对如何使用ramda继续这个场景有点困惑。下面是我正在使用的JSONJavascript 使用ramda.js获取嵌套对象数组中键的所有值,javascript,arrays,json,nested,ramda.js,Javascript,Arrays,Json,Nested,Ramda.js,我对如何使用ramda继续这个场景有点困惑。下面是我正在使用的JSON { “类型”:“CartWsDTO”, “卡特里”:[{ “入口编号”:1, “flightGroup”:{ “PAX详情”:[{ “paxID”:“1”, “paxPrice”:“770.82”, “paxType”:“ADT” }, { “paxID”:“2”, “paxPrice”:“770.82”, “paxType”:“ADT” } ] } }, { “入口编号”:2, “flightGroup”:{ “PAX详情
{
“类型”:“CartWsDTO”,
“卡特里”:[{
“入口编号”:1,
“flightGroup”:{
“PAX详情”:[{
“paxID”:“1”,
“paxPrice”:“770.82”,
“paxType”:“ADT”
}, {
“paxID”:“2”,
“paxPrice”:“770.82”,
“paxType”:“ADT”
} ]
}
}, {
“入口编号”:2,
“flightGroup”:{
“PAX详情”:[{
“paxID”:“1”,
“paxName”:“Vinitha”,
“paxPrice”:“770.82”,
“paxSurname”:“Vinitha”,
“paxType”:“ADT”
}, {
“paxID”:“2”,
“paxName”:“Prahal”,
“paxPrice”:“770.82”,
“paxSurname”:“Prahal”,
“paxType”:“ADT”
} ]
}
} ]
}
在上面的JSON中有2个carentries。每个条目的flightGroup中都有一个名为paxDetails的数组。从这个paxDetails数组中,我想选择paxPrice并计算该购物车条目的所有pax价格的总和。在传统的for循环和if条件下,我能够实现它。但是使用Ramda我不知道如何开始。请给我一个解决方案
提前谢谢 我不完全清楚您想要的输出是什么。下面是一个简单的解决方案,它返回两组价格的总和,并返回一个包含这些值的数组:
var calcTotals = R.pipe(
R.prop('Cartentries'),
R.map(R.pipe(
R.path(['flightGroup', 'PAXDetails']),
R.map(R.pipe(R.prop('paxPrice'), Number)),
R.sum
))
);
calcTotals(cart); //=> [1541.64, 1541.64]
但是如果您想要不同类型的输出,例如
{1: 1541.64, 2: 1541.64}
或
或者无论如何,您必须做一些更改。非常感谢。。这正是我想要的。。这节省了我的时间。我认为我应该对API有更深入的了解,以执行这些操作。
[{entryNumber : 1, total: 1541.64}, {entryNumber: 2. total: 1541.64}]