Default Values for JSON in javascript
14,145
You can use the or operator to assign default values in case the aren't defined, for example:
var slider = {
init:function(data){
var fish = data.fish || "default value";
}
}
Or you can make an "extend" function, to merge two objects, similar to the jQuery extend function:
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
![jcuenod](https://i.stack.imgur.com/dVXEK.jpg?s=256&g=1)
Comments
-
jcuenod about 2 years
In the code:
slider.init({ foo: "bar" }); var slider={ init:function(data){ } }
If I use
data.foo
, I will get "bar".Supposing I have an optional variable called
fish
which can be included in the JSON variable. If I referencedata.fish
, I will be told that it is undefined or an error will be thrown or something. Is there a way that I can assign a default value to fish so that when I requestdata.fish
, even though it is not set in the parameter, I will get a default value? -
Vnuk almost 15 yearsThis is very good concept, I had no idea that you could do this, thanks.
-
jcuenod almost 15 yearslol, thanks - I was thinking about something like that but just couldn't put my finger on it - I also thought that it might throw errors because data.fish would be null and it wouldn't want to be compared