Saturday, December 11, 2021

Javascript Function Argument Options and Object Conditionals

Summary

This post is purely some code examples of different ways to structure arguments to functions.  I show some examples of conditional object properties as well.

Base

  1. function example1(p1,p2,p3) {
  2. console.log('example1');
  3.  
  4. const params = {
  5. "p1": p1,
  6. "p2": p2,
  7. "p3": p3
  8. };
  9. console.log(params);
  10. };
  11. example1('a', 'b', 'c');
example1
{ p1: 'a', p2: 'b', p3: 'c' }


Insufficient Number of Arguments

  1. function example2(p1,p2,p3) {
  2. console.log('\nexample2')
  3. const params = {
  4. "p1": p1,
  5. "p2": p2,
  6. "p3": p3
  7. };
  8. console.log(params);
  9. };
  10. example2('a', 'b');
example2
{ p1: 'a', p2: 'b', p3: undefined }


Argument with a default value

  1. function example3(p1,p2,p3='c') {
  2. console.log('\nexample3')
  3. const params = {
  4. "p1": p1,
  5. "p2": p2,
  6. "p3": p3
  7. };
  8. console.log(params);
  9. };
  10. example3('a', 'b');
example3
{ p1: 'a', p2: 'b', p3: 'c' }


Arguments passed as an object

  1. function example4(allparms) {
  2. console.log('\nexample4')
  3. const params = {
  4. "p1": allparms.p1,
  5. "p2": allparms.p2,
  6. "p3": allparms.p3
  7. };
  8. console.log(params);
  9. }
  10. example4({"p1": 'a', "p2": 'b', "p3": 'c'});
example4
{ p1: 'a', p2: 'b', p3: 'c' }


Argument object destructured

  1. function example5({ p1,p2,p3 }) {
  2. console.log('\nexample5');
  3.  
  4. const params = {
  5. "p1": p1,
  6. "p2": p2,
  7. "p3": p3
  8. };
  9. console.log(params);
  10. };
  11. example5({"p1": "a", "p2": "b", "p3": "c"});
example5
{ p1: 'a', p2: 'b', p3: 'c' }


Destructured arguments, undefined argument

  1. function example6({ p1,p2,p3 }) {
  2. console.log('\nexample6');
  3.  
  4. const params = {
  5. "p1": p1,
  6. "p2": p2,
  7. "p3": p3
  8. };
  9. console.log(params);
  10. };
  11. example6({"p1": "a", "p2": "b"});
example6
{ p1: 'a', p2: 'b', p3: undefined }


Destructured arguments, undefined arg, conditional object property

  1. function example7({ p1,p2,p3 }) {
  2. console.log('\nexample7');
  3.  
  4. const params = {
  5. "p1": p1,
  6. "p2": p2,
  7. ...(p3 && {"p3": p3})
  8. };
  9. console.log(params);
  10. };
  11. example7({"p1": "a", "p2": "b"});
example7
{ p1: 'a', p2: 'b' }


Destructured arguments, default value

  1. function example8({ p1,p2,p3='c' }) {
  2. console.log('\nexample8');
  3.  
  4. const params = {
  5. "p1": p1,
  6. "p2": p2,
  7. ...(p3 && {"p3": p3})
  8. };
  9. console.log(params)
  10. };
  11. example8({"p1": "a", "p2": "b"});
example8
{ p1: 'a', p2: 'b', p3: 'c' }


Variadic function, spread operator

  1. function example9(...allParms) {
  2. console.log('\nexample9');
  3.  
  4. let params = {};
  5. let ind = 1;
  6. for (let parm of allParms) {
  7. params[`p${ind++}`] = parm;
  8. };
  9.  
  10. console.log(params);
  11. };
  12. example9("a", "b", "c");
example9
{ p1: 'a', p2: 'b', p3: 'c' }


Gist


Copyright ©1993-2024 Joey E Whelan, All rights reserved.