javascript – 使用ramda更改数组中的对象属性
作者:互联网
我有一个像下面的对象数组:
[{name:'name', key:'21',good: 'true'},
{name: 'another name', key:'22',good:'false'},
...]
现在我想对这个数组中的一个对象进行更改.我的第一次尝试是这样的:
const s = R.compose(
R.assoc('good', checked),
R.propEq('key', name),
R.map(),
);
但这个代码resualt是我想要的对象,只有它是’好’属性.我希望通过这种改变得到整个阵列.
解决方法:
我会做这样的事情:
const alter = curry((checked, key, items) => map(
when(propEq('key', key), assoc('good', checked)),
items
))
alter('true', '22', items)
这样做的好处是不包含任何自由变量(例如原始中的checked和name.)如果您不需要部分版本,则可以删除curry.
你可以在Ramda REPL上看到这个.
标签:javascript,ramda-js 来源: https://codeday.me/bug/20190714/1458031.html