# Locate an element in an array array

**URL:** <https://discourse.nodered.org/t/locate-an-element-in-an-array-array/73547>\
**Category:** General\
**Created:** [11 January 2023 16:32 UTC](https://discourse.nodered.org/t/locate-an-element-in-an-array-array/73547 "2023-01-11T16:32:25Z")\
**Posts on this page:** 10\
**Page:** 1

<div class="post-metadata">

**Author:** ![SuperNinja](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/superninja/32/5761_2.png) [@SuperNinja](https://discourse.nodered.org/u/SuperNinja)\
**Post date:** [11 January 2023 16:32 UTC](https://discourse.nodered.org/t/locate-an-element-in-an-array-array/73547/1 "2023-01-11T16:32:25Z")

</div>

Hello everyone, I have an array of elements. Each element is an array of elements.  
 ![image](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/d/6/d66195376cfe81ee95341c9743eedd299bdc4d03.png)

```auto
[{"id":"4fc7389b1ee3ce61","type":"function","z":"22872ad18901ecfc","name":"find element","func":"\n// recupere le msg.payload : array : offsetBox label valeur unite description type nbByte facteur \n/*\n[\n [32, \"uint16\", 2, null, 100, \"ph:consigne\", null, \"phConsigne\"], //iD = 20\n [...]\n]\n*/\n\n//const trameMontanteParametresProtocole = flow.get(\"trameMontanteParametresProtocole\")\n//afficher le contenu du array qui contient \"phConsigne\"\n// il est à id: 20\n\nlet localised = msg.payload.indexOf(\"phConsigne\")\nmsg.localised = localised\nreturn msg\n\n\n\n","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":800,"y":880,"wires":[["84a56d6cf338bc16"]]},{"id":"84a56d6cf338bc16","type":"debug","z":"22872ad18901ecfc","name":"localised","active":true,"tosidebar":true,"console":false,"tostatus":true,"complete":"true","targetType":"full","statusVal":"payload","statusType":"auto","x":1020,"y":880,"wires":[]},{"id":"4bd0b39beafd3d8f","type":"inject","z":"22872ad18901ecfc","name":"array","props":[{"p":"label","v":"phConsigne","vt":"str"},{"p":"payload"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"[[11,\"aa\"],[22,\"zz\"],[33,\"ee\"],[7.2,\"uint16\",2,null,100,\"phConsigne\"],[44,\"a\",\"rr\"],[55,\"tt\"],[66,\"yy\"],[77,\"uu\"]]","payloadType":"json","x":640,"y":880,"wires":[["4fc7389b1ee3ce61"]]}]

```

![image](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/4/1/41628f5814ee24228ee5531f0bd45c420511d51a.png)

I would like to know the id of the element which contains a string for example `"phConsigne"` (in the example it should tell me `3`).

I therefore use the method `msg.payload.indexOf("phConsigne")` but it does not find it and indicates "not found" `-1`

Do you know what the fault is?  
Thanks

---

<div class="post-metadata">

**Author:** ![KarolisL](https://avatars.discourse-cdn.com/v4/letter/k/a4c791/32.png) [@KarolisL](https://discourse.nodered.org/u/KarolisL)\
**Post date:** [11 January 2023 16:46 UTC](https://discourse.nodered.org/t/locate-an-element-in-an-array-array/73547/2 "2023-01-11T16:46:41Z")

</div>

```auto
msg.payload.forEach((element,index) => {
    if (element.indexOf("phConsigne") > -1) msg.localised = index
});

return msg

```

---

<div class="post-metadata">

**Author:** ![Sean-McG](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/sean-mcg/32/54677_2.png) [@Sean-McG](https://discourse.nodered.org/u/Sean-McG)\
**Post date:** [11 January 2023 16:46 UTC](https://discourse.nodered.org/t/locate-an-element-in-an-array-array/73547/3 "2023-01-11T16:46:46Z")

</div>

```auto
Object.keys(msg.payload).forEach(index => {
    
    let localised = msg.payload[index].indexOf(msg.label)
    if (localised != -1){
        msg.localised=index
    }

})

return msg

```

---

<div class="post-metadata">

**Author:** ![Sean-McG](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/sean-mcg/32/54677_2.png) [@Sean-McG](https://discourse.nodered.org/u/Sean-McG)\
**Post date:** [11 January 2023 16:48 UTC](https://discourse.nodered.org/t/locate-an-element-in-an-array-array/73547/4 "2023-01-11T16:48:02Z")

</div>

snap 🤣 😂 🤣

---

<div class="post-metadata">

**Author:** ![Sean-McG](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/sean-mcg/32/54677_2.png) [@Sean-McG](https://discourse.nodered.org/u/Sean-McG)\
**Post date:** [11 January 2023 16:57 UTC](https://discourse.nodered.org/t/locate-an-element-in-an-array-array/73547/5 "2023-01-11T16:57:59Z")

</div>

OK yours is shorter 😀 But to combine the two using the input of msg.label -

```auto
msg.payload.forEach((element, index) => {
    if (element.indexOf(msg.label) > -1) msg.localised = index
});
return msg

```

---

<div class="post-metadata">

**Author:** ![SuperNinja](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/superninja/32/5761_2.png) [@SuperNinja](https://discourse.nodered.org/u/SuperNinja)\
**Post date:** [12 January 2023 09:44 UTC](https://discourse.nodered.org/t/locate-an-element-in-an-array-array/73547/6 "2023-01-12T09:44:18Z")

</div>

🤩 it's beautiful when you know! thanks guys @Sean-McG @KarolisL

---

<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:** [12 January 2023 10:37 UTC](https://discourse.nodered.org/t/locate-an-element-in-an-array-array/73547/7 "2023-01-12T10:37:13Z")

</div>

For fun: In a 1 liner 😉 ...

```auto
msg.localised = msg.payload.map((e, i) => e.includes(msg.label)?i:null).find(e => e!==null)
return msg

```

 ![image](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/4/0/405f098e4a114d0e92c66f9ba099666b9540a6a4.png)

---

<div class="post-metadata">

**Author:** ![SuperNinja](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/superninja/32/5761_2.png) [@SuperNinja](https://discourse.nodered.org/u/SuperNinja)\
**Post date:** [12 January 2023 11:47 UTC](https://discourse.nodered.org/t/locate-an-element-in-an-array-array/73547/8 "2023-01-12T11:47:02Z")

</div>

wow then there! I never would have found!! 👏

---

<div class="post-metadata">

**Author:** ![Sean-McG](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/sean-mcg/32/54677_2.png) [@Sean-McG](https://discourse.nodered.org/u/Sean-McG)\
**Post date:** [12 January 2023 13:56 UTC](https://discourse.nodered.org/t/locate-an-element-in-an-array-array/73547/9 "2023-01-12T13:56:56Z")

</div>

Now you're just showing off 🤔

---

<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:** [26 January 2023 13:57 UTC](https://discourse.nodered.org/t/locate-an-element-in-an-array-array/73547/10 "2023-01-26T13:57:09Z")

</div>

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