编程语言
首页 > 编程语言> > javascript – 使用ramda更改数组中的对象属性

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