javascript - 将未定义的值与空字符串交换

标签 javascript jquery json backbone.js

我在主干应用程序中有一个解析方法,它从数组中构建一个 JSON 对象,但是如果一个值为空,它会被写为未定义,这会破坏其他方法的行为,我需要将未定义的值设置为空字符串,并且我在执行此操作时遇到困难,非常感谢任何帮助。

注意:在这种情况下,我尝试将 value: 的值设置为空字符串(如果 obj[key] = undefined)

代码:

 parse: function(data){
    return data.map(function(obj){
      var key = Object.keys(obj)[0];
      return {
        attribute: key,
        value: obj[key]
      };
   });
 }

toQueryString: function(){
  var obj = this.toQueryData(),
    qs = [];
  for (key in obj) {
    qs.push(key + "=" + obj[key]);
  }
  return qs.join('&')
},
toQueryData: function(){
  return this.reduce(function(memo, model){
    memo[model.get('attribute')] = model.get('value');
    return memo
  }, {});
}

最佳答案

使用三元条件:

value: obj[key] ? obj[key] : ""

或者(正如@Derek朕会功夫所指出的),

value: obj[key] || ""

关于javascript - 将未定义的值与空字符串交换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25674556/

相关文章:

javascript - Mongoose ,解析嵌入式数组中的路径

javascript - jquery/javascript 设置宽度失败

javascript - 当 JSONP 数据改变时

javascript - 使用特殊字符时解析 JSON 会引发错误

java - 如何在 JSON 正文中扩展和对象?

javascript - 反转 DECRYPT 算法

php - Facebook fbsr 和 session 不会删除

javascript - 仅使用一个js文件进行多个php ajax调用

javascript - 为什么这个 "loading message"脚本在 FF 中不起作用?(javascript)

javascript - 复选框默认选中 ="checked"不起作用?