Ramda:替换json数组中的NULL值

时间:2017-11-17 18:24:55

标签: javascript ramda.js

我们有一个json数组,其格式为:

[
{id: 123, name: 'abc', symbol: 'xyz'},
{id: 456, name: 'def', symbol: null},
...
]

我们正在寻找一个Ramda转换,它将用'simple'(空字符串)替换'symbol'属性为NULL的所有实例。关于如何在不进入forEach或for next循环的情况下完成此任务的任何想法?

3 个答案:

答案 0 :(得分:2)



const data = [
  {id: 123, name: 'abc', symbol: 'xyz'},
  {id: 456, name: 'def', symbol: null},
  // ...
];

const newData = R.map(R.over(R.lensProp('symbol'), R.defaultTo('')), data);

console.log(newData);

<script src="https://cdnjs.cloudflare.com/ajax/libs/ramda/0.25.0/ramda.min.js"></script>
&#13;
&#13;
&#13;

答案 1 :(得分:1)

这个怎么样?

R.map(({ symbol, ...otherProps }) => ({ ...otherProps, symbol: symbol || '' }))(arr);

答案 2 :(得分:1)

您可以将lensPropset一起使用。

arr.map(o => R.set(R.lensProp('symbol'), o.symbol || '', o))