Code Guy
Code Guy

Reputation: 3198

Custom function with variable arguments implementation using apps script

I have come across custom functions in Google apps script. It involves writing a function which return value after process.

How do I write the below IFS function using apps script

function ifs(args)
{
????
}

I now want to understand how the variable argumnets enabled custom functions to be created?

For example the ifs function takes variable number of arguments

IFS function
Evaluates multiple conditions and returns a value that corresponds to the first true condition.

Sample Usage
IFS(A1>90, "A", A1>80, "B", A1>70, "C")

IFS({A1:A5} > 3, "bigger", {A1:A5} = 3, "equal")

Syntax
IFS(condition1, value1, [condition2, value2, …])

condition1 - The first condition to be evaluated. This can be a boolean, a number, an array, or a reference to any of those.

value1 - The returned value if condition1 is TRUE.

condition2, value2, … - Additional conditions and values if the first one is evaluated to be false.

Upvotes: -1

Views: 1413

Answers (2)

TheMaster
TheMaster

Reputation: 50799

Use rest parameter:

function DOUBLE(...input) {
  return input.map(arg => arg * 2);
}
console.log(DOUBLE(5,10,15))
console.log(DOUBLE(1, -1, 0.5))

For a custom ifs, try

const customIFS = (...args) => {
 for (let i = 0; i < args.length; ++i){
    if (i % 2 === 0 && typeof args[i] === "boolean" && args[i]) return args[i+1];
 }
}
console.log(customIFS(1>2, "A", 2>1,"B"));
const big = 10, test=1000;
console.log(customIFS(big>test, "less",test===big," equal to big", test>big,"Bigger than big"))

Upvotes: 1

Wicket
Wicket

Reputation: 38425

From the question

I now want to understand how the variable argumnets (sic) enabled custom functions to be created?

Short answer:

Use the arguments object

Extended answer:

Google Sheets custom function doesn't work exactly as built-in functions like IFS. I.E. when writing a function, a function pop-up help might be shown like this

To create a custom function pop-up help we could use JSDOC

While JSDOC syntax has a way to set optional parameters, they are not shown on the custom function pop-up help, but it's possible to get all the custom function arguments by using the arguments object.

Upvotes: 0

Related Questions