Javascript如何将Object中的null / undefined值设置为空字符串

时间:2019-05-10 13:18:55

标签: javascript lodash

我有一个对象,其中某些字段的值为nullundefined。 是否有一种很好的快速方法来使用Javascript或Lodash将这些值更改为空字符串''

示例输入:

{
  a: '23',
  b: 'Red',
  c: null,
}

示例输出:

{
  a: '23',
  b: 'Red',
  c: '',
}

注意:我不想删除值为nullundefined的这些字段,我想将它们保留在对象中,但是将其值更改为空字符串'' < / p>

谢谢

2 个答案:

答案 0 :(得分:3)

您可以结合使用Object.keys().forEach()

Object.keys(yourObject).forEach(function(key, index) {
  if (this[key] == null) this[key] = "";
}, yourObject);

==比较将同时检查nullundefined。将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>