我有一个对象,其中某些字段的值为null
或undefined
。
是否有一种很好的快速方法来使用Javascript或Lodash将这些值更改为空字符串''
?
示例输入:
{
a: '23',
b: 'Red',
c: null,
}
示例输出:
{
a: '23',
b: 'Red',
c: '',
}
注意:我不想删除值为null
或undefined
的这些字段,我想将它们保留在对象中,但是将其值更改为空字符串''
< / p>
谢谢
答案 0 :(得分:3)
您可以结合使用Object.keys()
和.forEach()
:
Object.keys(yourObject).forEach(function(key, index) {
if (this[key] == null) this[key] = "";
}, yourObject);
==
比较将同时检查null
和undefined
。将yourObject
作为第二个参数传递给.forEach()
将导致this
被绑定到回调函数中。
edit -最初,我将其编写为=>
函数,但这无法正常工作,因为我们需要this
以传统方式工作。
答案 1 :(得分:1)
您可以使用_.mapValues()
来迭代值并替换它们,并使用_.isNil()
检查值是null
还是undefined
:
const obj = {
a: '23',
b: 'Red',
c: null,
}
const result = _.mapValues(obj, v => _.isNil(v) ? '' : v)
console.log(result)
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.11/lodash.js"></script>