I'm new to JavaScript coming from Python background. In Python parameters can be passed as key and value as such:
def printinfo( name, age = 35 ):
print "Name: ", name
print "Age ", age
return;
Then the function could be called as such:
printinfo( age=50, name="miki" )
printinfo( name="miki" )
Can such parameters be passing in JavaScript functions?
I want to be able to pass one or more parameter. For example a JavaScript function as such:
function plotChart(data, xlabel, ylabel, chart_type="l"){
...
}
I want to be able to pass only data and chart type and labels are optional such as :
plotChart(data, chart_type="pie")
Is this possible with JavaScript?
A good way to do this would be to use an object for all of the arguments. Something like:
function plotChart(options) {
// Set defaults
options.chart_type = options.chart_type || '1';
// Check if each required option is set
// Whatever is used by the data
}
Then when the function is called:
plotChart({
data: 'some data',
xlabel: 'some xlabel',
ylabel: 'some ylabel',
chart_type: '5' // This is optional
});
One way is to check if the parameter value is undefined
and if so then assign a value.
function plotChart(data, xlabel, ylabel, chart_type) {
if (typeof chart_type === 'undefined') {
chart_type = 'l';
}
}
Also EcmaScript 2016 (ES6) offers Default Parameters. Since some browser don't yet support this feature you can use a transpiler such as babel to convert the code to ES5.
To make it work like in your python example you would have to pass an object containing the values instead of individual parameters.
function plotChart(options) {
var data = options.data;
var xlabel = options.xlabel;
var ylabel = options.ylabel;
var chart_type = (typeof options.chart_type === 'undefined' ? 'l' : options.chart_type);
}
Example usage
plotChart({
xlabel: 'my label',
chart_type: 'pie'
});
There's a ton of answers for this already, but I havn't seen what I considered to be the simplest solution to this.
var myFunc = function(param1) {
var someData = param1 || "defaultValue";
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With