javascript - javascript 中 JSON 的默认值

标签 javascript json default-value

在代码中:

slider.init({
 foo: "bar"
});

var slider={
 init:function(data){
 }
}

如果我使用 data.foo,我会得到“bar”。

假设我有一个名为 fish 的可选变量,它可以包含在 JSON 变量中。如果我引用 data.fish,我会被告知它是未定义的或者会抛出错误或其他什么。有没有一种方法可以为 fish 分配一个默认值,这样当我请求 data.fish 时,即使它没有在参数中设置,我也会得到一个默认值?

最佳答案

如果未定义,您可以使用 or 运算符分配默认值,例如:

var slider = {
 init:function(data){
   var fish = data.fish || "default value";
 }
}

或者你可以做一个“扩展”功能,合并两个对象,类似于 jQuery extend功能:

function extend (obj1, obj2) { 
  var result = obj1, val;
  for (val in obj2) {
    if (obj2.hasOwnProperty(val)) {
      result[val] = obj2[val];
    }
  }
return result;
}

var defaults = {val1: 1, val3: 3, fish: 'fish'};
extend(defaults, {val2: 2}); // returns Object val1=1 val3=3 fish=fish val2=2

关于javascript - javascript 中 JSON 的默认值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1386467/

相关文章:

javascript - 将 CKEDITOR 转换为 TextArea

javascript - 如何在 Angular JS 中按索引删除对象中的元素?

sql - 在 SQL (Postgres) 中作为 JSON 对象数组返回

javascript - JSON 值可以是数字吗?

php - 如果模式不匹配,正则表达式中的默认值

mysql - MySQL 十进制字段的正确默认值是多少?

javascript - 如何在输入的文本区域文本的段落之间添加行?

javascript - 如何使 HostListener 用于滚动工作?

javascript - 无法访问 $scope.property,但可以在 console.log($scope) 上看到它

php - MySQL-设置动态默认值