Ramda:替换 json 数组中的 NULL 值

Ramda: replace NULL values in json array

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

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

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

这个怎么样?

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

您可以将 lensPropset 一起使用。

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

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>