我们有一个json数组,其格式为:
[
{id: 123, name: 'abc', symbol: 'xyz'},
{id: 456, name: 'def', symbol: null},
...
]
我们正在寻找一个Ramda转换,它将用'simple'(空字符串)替换'symbol'属性为NULL的所有实例。关于如何在不进入forEach或for next循环的情况下完成此任务的任何想法?
答案 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;
答案 1 :(得分:1)
这个怎么样?
R.map(({ symbol, ...otherProps }) => ({ ...otherProps, symbol: symbol || '' }))(arr);
答案 2 :(得分:1)
您可以将lensProp
与set
一起使用。
arr.map(o => R.set(R.lensProp('symbol'), o.symbol || '', o))