# Function with dynamic Arrays

**URL:** <https://discourse.nodered.org/t/function-with-dynamic-arrays/62442>\
**Category:** General\
**Tags:** function-node\
**Created:** [10 May 2022 10:16 UTC](https://discourse.nodered.org/t/function-with-dynamic-arrays/62442 "2022-05-10T10:16:08Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![skydiver99](https://avatars.discourse-cdn.com/v4/letter/s/439d5e/32.png) [@skydiver99](https://discourse.nodered.org/u/skydiver99)\
**Post date:** [10 May 2022 10:16 UTC](https://discourse.nodered.org/t/function-with-dynamic-arrays/62442/1 "2022-05-10T10:16:08Z")

</div>

Hello,  
I am a noob in node red and I've wrote this function node and it works fine, but I have not every time three arrays, sometimes 2, sometimes up to 15 arrays and in this case my function node dosent work. I know there is a way to count the arrays, but how to ?????  
Can somebody help me and change this code???

```auto
type or paste code here

var elv0 = msg.payload.data[0].elevation.feet;
var loc0 = msg.payload.data[0].station.location;
var typ0 = msg.payload.data[0].station.type;
var raw0 = msg.payload.data[0].raw_text;

var elv1 = msg.payload.data[1].elevation.feet;
var loc1 = msg.payload.data[1].station.location;
var typ1 = msg.payload.data[1].station.type;
var raw1 = msg.payload.data[1].raw_text;

var elv2 = msg.payload.data[2].elevation.feet;
var loc2 = msg.payload.data[2].station.location;
var typ2 = msg.payload.data[2].station.type;
var raw2 = msg.payload.data[2].raw_text;

msg.payload ='<li>'+loc0 + ' '+typ0+' - Elev: '+elv0+' ft'+'<br>'+raw0+'<br>'+
             '<li>'+loc1 + ' '+typ1+' - Elev: '+elv1+' ft'+'<br>'+raw1+'<br>'+
             '<li>'+loc2 + ' '+typ2+' - Elev: '+elv2+' ft'+'<br>'+raw2+'<br>';

return msg;

```

---

<div class="post-metadata">

**Author:** ![Steve-Mcl](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/steve-mcl/32/4826_2.png) [@Steve-Mcl](https://discourse.nodered.org/u/Steve-Mcl)\
**Post date:** [10 May 2022 10:29 UTC](https://discourse.nodered.org/t/function-with-dynamic-arrays/62442/2 "2022-05-10T10:29:54Z")

</div>

Try...

```auto
const data = msg.payload.data;
const result = data.map(e => {
    var elv = e.elevation.feet;
    var loc = e.station.location;
    var typ = e.station.type;
    var raw = e.raw_text;
    return `<li>${loc} ${typ} - Elev: ${elv} ft<br>${raw}<br>`
})
msg.payload = result
return msg;

```

---

<div class="post-metadata">

**Author:** ![skydiver99](https://avatars.discourse-cdn.com/v4/letter/s/439d5e/32.png) [@skydiver99](https://discourse.nodered.org/u/skydiver99)\
**Post date:** [10 May 2022 10:34 UTC](https://discourse.nodered.org/t/function-with-dynamic-arrays/62442/3 "2022-05-10T10:34:52Z")

</div>

wow.... it works

thank you very much, I've been trying for three days....

🙂

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/1X/d073cd938eafa2e558d7c2cd59003b3ef4963033.png) [@system](https://discourse.nodered.org/u/system)\
**Post date:** [24 May 2022 10:35 UTC](https://discourse.nodered.org/t/function-with-dynamic-arrays/62442/4 "2022-05-24T10:35:35Z")

</div>

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.
