【发布时间】:2018-07-29 04:51:01
【问题描述】:
const items ={
"costList":[
{
"cost": [10, 20],
"order":20
} ,
{
"cost": [20, 30],
"order":20
}
],
"testObject3":[{
"testArray":[
{
testInnerArray:[10,20,30,40],
testNumber:30
},
{
testInnerArray:[10,20,30,40],
testNumber:30
}
]
}
]
}
我正在尝试使用 ramda 并更新 json 文档中向下 2 级或 3 级的数组。
一个。对于第一个,我试图更新成本数组并乘以一个因子。 我使用了以下 ramda 函数,它给了我 Nan 作为值,而我期望在第一个数组索引的情况下为 [20,40] 和在第二个数组索引的情况下为 [40, 60] 。 我使用以下 ramda 语句进行转换:
const costListLens = R.lensProp('costList');
const costLens = R.lensProp('cost');
var convertedData = R.over(costListLens, R.map(R.over(costLens, R.multiply(2))
))(items);
b.在第二种情况下,我正在尝试更新向下 3 级的数组。
const firstLevelLens = R.lensProp('testObject3');
const secondLevelLens = R.lensProp('testArray');
const thirdLevelLens = R.lensProp('testInnerArray');
R.over(firstLevelLens, R.map(R.over(secondLevelLens, R.map(R.over(thirdLevelLens, R.multiply(2)) ))))(items)*
在这两种情况下,数组都设置为 Nan。你能建议错误是什么吗?
【问题讨论】: