# How to save writing with if and else in function node

**URL:** https://discourse.nodered.org/t/how-to-save-writing-with-if-and-else-in-function-node/65274
**Category:** General
**Created:** [18 July 2022 16:05 UTC](https://discourse.nodered.org/t/how-to-save-writing-with-if-and-else-in-function-node/65274 "2022-07-18T16:05:50Z")
**Posts on this page:** 20
**Page:** 1

<div class="post-metadata">

### Author: ![devifast](https://avatars.discourse-cdn.com/v4/letter/d/43a26b/32.png) [@devifast](https://discourse.nodered.org/u/devifast)
#### Post date: [18 July 2022 16:05 UTC](https://discourse.nodered.org/t/how-to-save-writing-with-if-and-else-in-function-node/65274/1 "2022-07-18T16:05:50Z")

</div>

Hello, I am sending you sample code.  
I am not at all experienced in this field.  
My question is, is there a way to abbreviate this?  
Greetings.

```auto

//solar pump to pool on,off
var slrpool_on = { payload: 1};
var slrpool_off = { payload: 0};

//solar pump to boiler on,off
var slrboiler_on = { payload: "on"};
var slrboiler_off = { payload: "off"};

//conditions

//1
if (msg.payload.setboiler == "on" && msg.payload.solarboiler == "on" && msg.payload.solarpool == "on" && msg.payload.D1_mini == "online"){
return [slrboiler_on, slrpool_off];
}

//2
else if (msg.payload.setboiler == "off" && msg.payload.solarboiler == "on" && msg.payload.solarpool == "on" && msg.payload.D1_mini == "online"){
return [slrboiler_off, slrpool_on];
}

//3
else if (msg.payload.setboiler == "on" && msg.payload.solarboiler == "off" && msg.payload.solarpool == "on" && msg.payload.D1_mini == "online"){
return [slrboiler_off, slrpool_off];
}

//4 ..?
else if (msg.payload.setboiler == "on" && msg.payload.solarboiler == "on" && msg.payload.solarpool == "off" && msg.payload.D1_mini == "online"){
return [slrboiler_on, slrpool_off];
}

//5
else if (msg.payload.setboiler == "off" && msg.payload.solarboiler == "off" && msg.payload.solarpool == "on" && msg.payload.D1_mini == "online"){
return [slrboiler_off, slrpool_on];
}

//6
else if (msg.payload.setboiler == "on" && msg.payload.solarboiler == "off" && msg.payload.solarpool == "off" && msg.payload.D1_mini == "online"){
return [slrboiler_off, slrpool_off];
}

//7..?
else if (msg.payload.setboiler == "off" && msg.payload.solarboiler == "on" && msg.payload.solarpool == "off" && msg.payload.D1_mini == "online"){
return [slrboiler_off, slrpool_on];
}

//8
else if (msg.payload.setboiler == "off" && msg.payload.solarboiler == "off" && msg.payload.solarpool == "off" && msg.payload.D1_mini == "online"){
return [slrboiler_off, slrpool_off];
}

//9
else if (msg.payload.setboiler == "on" && msg.payload.solarboiler == "on" && msg.payload.solarpool == "on" && msg.payload.D1_mini == "offline"){
return [slrboiler_off, slrpool_on];
}

//10
else if (msg.payload.setboiler == "off" && msg.payload.solarboiler == "on" && msg.payload.solarpool == "on" && msg.payload.D1_mini == "offline"){
return [slrboiler_off, slrpool_on];
}

//11
else if (msg.payload.setboiler == "on" && msg.payload.solarboiler == "off" && msg.payload.solarpool == "on" && msg.payload.D1_mini == "offline"){
return [slrboiler_off, slrpool_on];
}

//12
else if (msg.payload.setboiler == "on" && msg.payload.solarboiler == "on" && msg.payload.solarpool == "off" && msg.payload.D1_mini == "offline"){
return [slrboiler_off, slrpool_off];
}

//13
else if (msg.payload.setboiler == "off" && msg.payload.solarboiler == "off" && msg.payload.solarpool == "on" && msg.payload.D1_mini == "offline"){
return [slrboiler_off, slrpool_on];
}

//14
else if (msg.payload.setboiler == "on" && msg.payload.solarboiler == "off" && msg.payload.solarpool == "off" && msg.payload.D1_mini == "offline"){
return [slrboiler_off, slrpool_off];
}

//15
else if (msg.payload.setboiler == "off" && msg.payload.solarboiler == "on" && msg.payload.solarpool == "off" && msg.payload.D1_mini == "offline"){
return [slrboiler_off, slrpool_off];
}

//16
else if (msg.payload.setboiler == "off" && msg.payload.solarboiler == "off" && msg.payload.solarpool == "off" && msg.payload.D1_mini == "offline"){
return [slrboiler_off, slrpool_off];
}

//else {
//return [slrboiler_off, slrpool_off];
//}

```

---

<div class="post-metadata">

### Author: ![HaroldPetersInskipp](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/haroldpetersinskipp/32/42319_2.png) [@HaroldPetersInskipp](https://discourse.nodered.org/u/HaroldPetersInskipp)
#### Post date: [18 July 2022 16:38 UTC](https://discourse.nodered.org/t/how-to-save-writing-with-if-and-else-in-function-node/65274/2 "2022-07-18T16:38:54Z")

</div>

You could try:

```auto
//solar pump to pool on,off
var slrpool_on = { payload: 1 };
var slrpool_off = { payload: 0 };

//solar pump to boiler on,off
var slrboiler_on = { payload: "on" };
var slrboiler_off = { payload: "off" };

//conditions
// group 1
if ((msg.payload.setboiler == "on" && msg.payload.solarboiler == "on" && msg.payload.solarpool == "on" && msg.payload.D1_mini == "online")||(msg.payload.setboiler == "on" && msg.payload.solarboiler == "on" && msg.payload.solarpool == "off" && msg.payload.D1_mini == "online")) {
    return [slrboiler_on, slrpool_off];
};
// group 2
else if ((msg.payload.setboiler == "off" && msg.payload.solarboiler == "on" && msg.payload.solarpool == "on" && msg.payload.D1_mini == "online")||(msg.payload.setboiler == "off" && msg.payload.solarboiler == "off" && msg.payload.solarpool == "on" && msg.payload.D1_mini == "online")||(msg.payload.setboiler == "off" && msg.payload.solarboiler == "on" && msg.payload.solarpool == "off" && msg.payload.D1_mini == "online")||(msg.payload.setboiler == "on" && msg.payload.solarboiler == "on" && msg.payload.solarpool == "on" && msg.payload.D1_mini == "offline")||(msg.payload.setboiler == "off" && msg.payload.solarboiler == "on" && msg.payload.solarpool == "on" && msg.payload.D1_mini == "offline")||(msg.payload.setboiler == "on" && msg.payload.solarboiler == "off" && msg.payload.solarpool == "on" && msg.payload.D1_mini == "offline")||(msg.payload.setboiler == "off" && msg.payload.solarboiler == "off" && msg.payload.solarpool == "on" && msg.payload.D1_mini == "offline")) {
    return [slrboiler_off, slrpool_on];
};
// group 3
else if ((msg.payload.setboiler == "on" && msg.payload.solarboiler == "off" && msg.payload.solarpool == "on" && msg.payload.D1_mini == "online")||(msg.payload.setboiler == "on" && msg.payload.solarboiler == "off" && msg.payload.solarpool == "off" && msg.payload.D1_mini == "online")||(msg.payload.setboiler == "off" && msg.payload.solarboiler == "off" && msg.payload.solarpool == "off" && msg.payload.D1_mini == "online")||(msg.payload.setboiler == "on" && msg.payload.solarboiler == "on" && msg.payload.solarpool == "off" && msg.payload.D1_mini == "offline")||(msg.payload.setboiler == "on" && msg.payload.solarboiler == "off" && msg.payload.solarpool == "off" && msg.payload.D1_mini == "offline")||(msg.payload.setboiler == "off" && msg.payload.solarboiler == "on" && msg.payload.solarpool == "off" && msg.payload.D1_mini == "offline")||(msg.payload.setboiler == "off" && msg.payload.solarboiler == "off" && msg.payload.solarpool == "off" && msg.payload.D1_mini == "offline")) {
    return [slrboiler_off, slrpool_off];
};

```

---

<div class="post-metadata">

### Author: ![devifast](https://avatars.discourse-cdn.com/v4/letter/d/43a26b/32.png) [@devifast](https://discourse.nodered.org/u/devifast)
#### Post date: [18 July 2022 17:22 UTC](https://discourse.nodered.org/t/how-to-save-writing-with-if-and-else-in-function-node/65274/3 "2022-07-18T17:22:56Z")

</div>

Thanks for the reply, but it seems to me that this is the same thing written in three lines?

---

<div class="post-metadata">

### Author: ![zenofmud](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/zenofmud/32/316_2.png) [@zenofmud](https://discourse.nodered.org/u/zenofmud)
#### Post date: [18 July 2022 17:25 UTC](https://discourse.nodered.org/t/how-to-save-writing-with-if-and-else-in-function-node/65274/4 "2022-07-18T17:25:28Z")

</div>

Here is another way you could do it. You are dealing with a truth table, using abbreviations where  
`setboiler` will be `bb`,  
`solarboiler` will be `sb`  
`solarpool` will be `sp`  
`D1_mini` will be `dm`  
you would have

```auto
bb sb sp sm - result
 0 0 0 0 0  
 0 0 0 1 1  
 0 0 1 0 2  
 0 0 1 1 3  
 0 1 0 0 4  
 0 1 0 1 5  
 0 1 1 0 6  
 0 1 1 1 7  
 1 0 0 0 8  
 1 0 0 1 9  
 1 0 1 0 10  
 1 0 1 1 11  
 1 1 0 0 12  
 1 1 0 1 13  
 1 1 1 0 14  
 1 1 1 1 15 

```

so bb will be 8 or 0  
sb will be 4 or 0  
sp will be 2 or 0  
d1 will be 1 or 0  
You code use some `if`'s test and a `switch` like this

```auto
let bb = o
let sb = 0;
let sp = 0;
let d1 = 0;
let t = 0;

if (msg.payload.setboiler == "on") bb = 8;
if (msg.payload.solarboiler == "on") sb = 4; 
if (msg.payload.solarpool == "on") sp = 2;
if (msg.payload.D1_mini == "online") d1 = 1;

t = bb + sb + sp + d1;

switch (d1) {
    case 0:
       return [slrboiler_off, slrpool_off];
       break;
    case 1:
       return [slrboiler_off, slrpool_off];
       break;
    case 2:
.
.
.
}

```

I'll let you fill in the rest

---

<div class="post-metadata">

### Author: ![devifast](https://avatars.discourse-cdn.com/v4/letter/d/43a26b/32.png) [@devifast](https://discourse.nodered.org/u/devifast)
#### Post date: [18 July 2022 17:32 UTC](https://discourse.nodered.org/t/how-to-save-writing-with-if-and-else-in-function-node/65274/5 "2022-07-18T17:32:54Z")

</div>

Absolutely true, but I did it in the spreadsheet after this writing function based on the table.  
How to do it in Node red?

---

<div class="post-metadata">

### Author: ![devifast](https://avatars.discourse-cdn.com/v4/letter/d/43a26b/32.png) [@devifast](https://discourse.nodered.org/u/devifast)
#### Post date: [18 July 2022 17:35 UTC](https://discourse.nodered.org/t/how-to-save-writing-with-if-and-else-in-function-node/65274/6 "2022-07-18T17:35:25Z")

</div>

Do you mean to shorten the speeches?

---

<div class="post-metadata">

### Author: ![zenofmud](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/zenofmud/32/316_2.png) [@zenofmud](https://discourse.nodered.org/u/zenofmud)
#### Post date: [18 July 2022 17:36 UTC](https://discourse.nodered.org/t/how-to-save-writing-with-if-and-else-in-function-node/65274/7 "2022-07-18T17:36:37Z")

</div>

Sorry I hit 'enter' as I was typing, see my last post now.

---

<div class="post-metadata">

### Author: ![devifast](https://avatars.discourse-cdn.com/v4/letter/d/43a26b/32.png) [@devifast](https://discourse.nodered.org/u/devifast)
#### Post date: [18 July 2022 17:41 UTC](https://discourse.nodered.org/t/how-to-save-writing-with-if-and-else-in-function-node/65274/8 "2022-07-18T17:41:46Z")

</div>

> [@zenofmud](#):
>
> I'll let you fill in the rest

Smells like success to me, but where is case 0?

---

<div class="post-metadata">

### Author: ![zenofmud](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/zenofmud/32/316_2.png) [@zenofmud](https://discourse.nodered.org/u/zenofmud)
#### Post date: [18 July 2022 17:42 UTC](https://discourse.nodered.org/t/how-to-save-writing-with-if-and-else-in-function-node/65274/9 "2022-07-18T17:42:50Z")

</div>

Case 0 is with everything off (d1 is offline) - first case condition in the switch - so you would have case 0 thru case 15 in switch code.

Remember `t` is set to 0 and it all the others are off, they will all be 0 and when you add four 0's together you get 0 🤣

---

<div class="post-metadata">

### Author: ![devifast](https://avatars.discourse-cdn.com/v4/letter/d/43a26b/32.png) [@devifast](https://discourse.nodered.org/u/devifast)
#### Post date: [18 July 2022 17:47 UTC](https://discourse.nodered.org/t/how-to-save-writing-with-if-and-else-in-function-node/65274/10 "2022-07-18T17:47:14Z")

</div>

Please write me case 1 and 2, I will finish the rest. I'm not good with syntax at all.  
Greetings.

---

<div class="post-metadata">

### Author: ![E1cid](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/e1cid/32/77971_2.png) [@E1cid](https://discourse.nodered.org/u/E1cid)
#### Post date: [18 July 2022 17:49 UTC](https://discourse.nodered.org/t/how-to-save-writing-with-if-and-else-in-function-node/65274/11 "2022-07-18T17:49:59Z")

</div>

you could try a different method, convert the payloads to a string then lookup outputs.  
e.g.

```auto
[{"id":"1c2e2d6f.a1c5cb","type":"inject","z":"30af2d3e.d94ea2","name":"1111","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"{\"setboiler\":\"on\",\"solarboiler\":\"on\",\"solarpool\":\"on\",\"D1_mini\":\"online\"}","payloadType":"json","x":130,"y":680,"wires":[["1c152d73.923a03"]]},{"id":"1c152d73.923a03","type":"function","z":"30af2d3e.d94ea2","name":"","func":"const bools = (msg.payload.setboiler === \"on\" ? \"1\" : \"0\") +\n (msg.payload.solarboiler === \"on\" ? \"1\" : \"0\") +\n (msg.payload.solarpool == \"on\" ? \"1\" : \"0\") +\n (msg.payload.D1_mini == \"online\" ? \"1\" : \"0\");\n//node.warn(bools);\nconst bool_pool = {\n \"1111\": [1,\"off\"], \n \"1101\": [1,\"off\"],\n \"0111\": [0,\"on\"],\n \"0011\": [0,\"on\"],\n \"0101\": [0,\"on\"],\n \"1110\": [0,\"on\"],\n \"0110\": [0,\"on\"],\n \"1010\": [0,\"on\"],\n \"0010\": [0,\"on\"],\n \"1011\": [0,\"off\"],\n \"1001\": [0,\"off\"],\n \"0001\": [0,\"off\"],\n \"1100\": [0,\"off\"],\n \"1000\": [0,\"off\"],\n \"0100\": [0,\"off\"],\n \"0000\": [0,\"off\"]\n};\nconst outputs = bool_pool[bools]\nif(outputs){\n return [{ payload: outputs[0]}, { payload: outputs[1]}];\n}\n","outputs":2,"noerr":0,"initialize":"","finalize":"","libs":[],"x":320,"y":680,"wires":[["c75be667.e7b968"],["c75be667.e7b968"]]},{"id":"87e4889a.2508c8","type":"inject","z":"30af2d3e.d94ea2","name":"1011","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"{\"setboiler\":\"on\",\"solarboiler\":\"off\",\"solarpool\":\"on\",\"D1_mini\":\"online\"}","payloadType":"json","x":130,"y":720,"wires":[["1c152d73.923a03"]]},{"id":"c75be667.e7b968","type":"debug","z":"30af2d3e.d94ea2","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":600,"y":660,"wires":[]}]

```

```auto
//create lookup string eg "1111"
const bools = (msg.payload.setboiler === "on" ? "1" : "0") +
    (msg.payload.solarboiler === "on" ? "1" : "0") +
    (msg.payload.solarpool == "on" ? "1" : "0") +
    (msg.payload.D1_mini == "online" ? "1" : "0");
// lookup table of outputs
const bool_pool = {
        "1111": [1,"off"], 
        "1101": [1,"off"],
        "0111": [0,"on"],
        "0011": [0,"on"],
        "0101": [0,"on"],
        "1110": [0,"on"],
        "0110": [0,"on"],
        "1010": [0,"on"],
        "0010": [0,"on"],
        "1011": [0,"off"],
        "1001": [0,"off"],
        "0001": [0,"off"],
        "1100": [0,"off"],
        "1000": [0,"off"],
        "0100": [0,"off"],
        "0000": [0,"off"]
};
// lookup outputs
const outputs = bool_pool[bools]
//output if outputs finds a result
if(outputs){
    return [{ payload: outputs[0]}, { payload: outputs[1]}];
}

```

---

<div class="post-metadata">

### Author: ![zenofmud](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/zenofmud/32/316_2.png) [@zenofmud](https://discourse.nodered.org/u/zenofmud)
#### Post date: [18 July 2022 18:08 UTC](https://discourse.nodered.org/t/how-to-save-writing-with-if-and-else-in-function-node/65274/12 "2022-07-18T18:08:08Z")

</div>

case 2 would be your code

```auto
else if (msg.payload.setboiler == "off" && // ss = 0
         msg.payload.solarboiler == "off" && // sb = 0
         msg.payload.solarpool == "on" && // sp = 1
         msg.payload.D1_mini == "offline") // d1 = 0 binary 0010 = 2
   { return [slrboiler_off, slrpool_on];      

```

so it would be

```auto
    case 2:
       return [slrboiler_off, slrpool_on];
       break;

```

---

<div class="post-metadata">

### Author: ![devifast](https://avatars.discourse-cdn.com/v4/letter/d/43a26b/32.png) [@devifast](https://discourse.nodered.org/u/devifast)
#### Post date: [18 July 2022 18:37 UTC](https://discourse.nodered.org/t/how-to-save-writing-with-if-and-else-in-function-node/65274/13 "2022-07-18T18:37:15Z")

</div>

```auto
let bb = 0;
let sb = 0;
let sp = 0;
let d1 = 0;
let t = 0;

if (msg.payload.setboiler == "on") bb = 8;
if (msg.payload.solarboiler == "on") sb = 4;
if (msg.payload.solarpool == "on") sp = 2;
if (msg.payload.D1_mini == "online") d1 = 1;

t = bb + sb + sp + d1;

switch (d1) {
    case 0:
        return [slrboiler_off, slrpool_off];
        break;
    case 1:
        return [slrboiler_off, slrpool_off];
        break;
    case 2: 
        return [slrboiler_off, slrpool_on];
        break;
.
.
.
}

```

Sorry, I don't understand something.

---

<div class="post-metadata">

### Author: ![zenofmud](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/zenofmud/32/316_2.png) [@zenofmud](https://discourse.nodered.org/u/zenofmud)
#### Post date: [18 July 2022 19:06 UTC](https://discourse.nodered.org/t/how-to-save-writing-with-if-and-else-in-function-node/65274/14 "2022-07-18T19:06:54Z")

</div>

my bad that code was confusing to look at. Here this should help you out:

```auto
if (setboiler == "1" && solarboiler == "1" && solarpool == "1" && D1_mini == "1") - case 0 - {return [slrboiler_on, slrpool_off];
if (setboiler == "0" && solarboiler == "1" && solarpool == "1" && D1_mini == "1") - case 1 - {return [slrboiler_off, slrpool_on];
if (setboiler == "1" && solarboiler == "0" && solarpool == "1" && D1_mini == "1") - case 2 - {return [slrboiler_off, slrpool_off];
if (setboiler == "1" && solarboiler == "1" && solarpool == "0" && D1_mini == "1") - case 3 - {return [slrboiler_on, slrpool_off];
if (setboiler == "0" && solarboiler == "0" && solarpool == "1" && D1_mini == "1") - case 4 - {return [slrboiler_off, slrpool_on];
if (setboiler == "1" && solarboiler == "0" && solarpool == "0" && D1_mini == "1") - case 5 - {return [slrboiler_off, slrpool_off];
if (setboiler == "0" && solarboiler == "1" && solarpool == "0" && D1_mini == "1") - case 6 - {return [slrboiler_off, slrpool_on];
if (setboiler == "0" && solarboiler == "0" && solarpool == "0" && D1_mini == "1") - case 7 - {return [slrboiler_off, slrpool_off];
if (setboiler == "1" && solarboiler == "1" && solarpool == "1" && D1_mini == "0") - case 8 - {return [slrboiler_off, slrpool_on];
if (setboiler == "0" && solarboiler == "1" && solarpool == "1" && D1_mini == "0") - case 9 - {return [slrboiler_off, slrpool_on];
if (setboiler == "1" && solarboiler == "0" && solarpool == "1" && D1_mini == "0") - case 10 - {return [slrboiler_off, slrpool_on];
if (setboiler == "1" && solarboiler == "1" && solarpool == "0" && D1_mini == "0") - case 11 - {return [slrboiler_off, slrpool_off];
if (setboiler == "0" && solarboiler == "0" && solarpool == "1" && D1_mini == "0") - case 12 - {return [slrboiler_off, slrpool_on];
if (setboiler == "1" && solarboiler == "0" && solarpool == "0" && D1_mini == "0") - case 13 - {return [slrboiler_off, slrpool_off];
if (setboiler == "0" && solarboiler == "1" && solarpool == "0" && D1_mini == "0") - case 14 - {return [slrboiler_off, slrpool_off];
if (setboiler == "0" && solarboiler == "0" && solarpool == "0" && D1_mini == "0") - case 15 - {return [slrboiler_off, slrpool_off];

```

here are the cases and what gets returned:

```auto
case 0 - {return [slrboiler_on, slrpool_off];
case 1 - {return [slrboiler_off, slrpool_on];
case 2 - {return [slrboiler_off, slrpool_off];
case 3 - {return [slrboiler_on, slrpool_off];
case 4 - {return [slrboiler_off, slrpool_on];
case 5 - {return [slrboiler_off, slrpool_off];
case 6 - {return [slrboiler_off, slrpool_on];
case 7 - {return [slrboiler_off, slrpool_off];
case 8 - {return [slrboiler_off, slrpool_on];
case 9 - {return [slrboiler_off, slrpool_on];
case 10 - {return [slrboiler_off, slrpool_on];
case 11 - {return [slrboiler_off, slrpool_off];
case 12 - {return [slrboiler_off, slrpool_on];
case 13 - {return [slrboiler_off, slrpool_off];
case 14 - {return [slrboiler_off, slrpool_off];
case 15 - {return [slrboiler_off, slrpool_off];

```

---

<div class="post-metadata">

### Author: ![devifast](https://avatars.discourse-cdn.com/v4/letter/d/43a26b/32.png) [@devifast](https://discourse.nodered.org/u/devifast)
#### Post date: [18 July 2022 19:31 UTC](https://discourse.nodered.org/t/how-to-save-writing-with-if-and-else-in-function-node/65274/15 "2022-07-18T19:31:46Z")

</div>

I'm lost in this code.  
Can you just the beginning and end of the code of this in the middle I will describe it.I think that's the same thing I do. the bad thing is that I have to add another condition that multiplies the writing!  
Greetings.

---

<div class="post-metadata">

### Author: ![zenofmud](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/zenofmud/32/316_2.png) [@zenofmud](https://discourse.nodered.org/u/zenofmud)
#### Post date: [18 July 2022 20:18 UTC](https://discourse.nodered.org/t/how-to-save-writing-with-if-and-else-in-function-node/65274/16 "2022-07-18T20:18:19Z")

</div>

this is not the code for the switch, it's showing you the condition. For example this  
`case 7 - {return [slrboiler_off, slrpool_off];`  
in the code would be

```auto
    case 7:
        return [slrboiler_off, slrpool_off];
        break;

```

and you can combine cases, so looking at your conditions and results, case 2, 5, 7, 11, 13, 14 and 15 all return off, off so you could code

```auto
    case 2:
    case 5:
    case 7:
    case 11:
    case 13:
    case 14:
    case 15:
        return [slrboiler_off, slrpool_off];
        break;

```

it also loooks like case 0 and 3 are the same results and cases 1, 4, 6, 8 ,9, 10 and 12 return the same result so the

---

<div class="post-metadata">

### Author: ![devifast](https://avatars.discourse-cdn.com/v4/letter/d/43a26b/32.png) [@devifast](https://discourse.nodered.org/u/devifast)
#### Post date: [18 July 2022 20:36 UTC](https://discourse.nodered.org/t/how-to-save-writing-with-if-and-else-in-function-node/65274/17 "2022-07-18T20:36:14Z")

</div>

Please send me the code with beginning and end and something in between. I will try to do the rest myself.

---

<div class="post-metadata">

### Author: ![zenofmud](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/zenofmud/32/316_2.png) [@zenofmud](https://discourse.nodered.org/u/zenofmud)
#### Post date: [18 July 2022 21:05 UTC](https://discourse.nodered.org/t/how-to-save-writing-with-if-and-else-in-function-node/65274/18 "2022-07-18T21:05:31Z")

</div>

If you go back to the code I originally gave you, just replace everything in the switch between the `{` and the `}` with what I just posted.

---

<div class="post-metadata">

### Author: ![devifast](https://avatars.discourse-cdn.com/v4/letter/d/43a26b/32.png) [@devifast](https://discourse.nodered.org/u/devifast)
#### Post date: [18 July 2022 21:15 UTC](https://discourse.nodered.org/t/how-to-save-writing-with-if-and-else-in-function-node/65274/19 "2022-07-18T21:15:50Z")

</div>

Unfortunately, what I'm trying to do is probably impossible. This topic includes if else. My problem is like in chess.  
In the first field one grain of rice, in the second field two grains of rice, and so on up to 64. If I want to include another condition, the matrix increases by another N per number of rows!

---

<div class="post-metadata">

### Author: ![devifast](https://avatars.discourse-cdn.com/v4/letter/d/43a26b/32.png) [@devifast](https://discourse.nodered.org/u/devifast)
#### Post date: [18 July 2022 21:36 UTC](https://discourse.nodered.org/t/how-to-save-writing-with-if-and-else-in-function-node/65274/20 "2022-07-18T21:36:10Z")

</div>

If I want to add two more items?  
(msg.payload.solarboiler === "on" ? "1" : "0")  
like  
(msg.payload.solarboiler === "nothing" ? "1" : "?")

[Next page](https://discourse.nodered.org/t/how-to-save-writing-with-if-and-else-in-function-node/65274.md?page=2)
