Wenn Du es über JSONATA ohne viel Code lösen willst, dann poste mal Dein ganzes Array hier in CodeTags. Dann extrahiere ich Dir die MAC-Adressen über JSONATA. Dann kannst Du Dir das Schleifengedöns wahrscheinlich sparen.
Nehme ich also mal das als Datenausgangsbasis:
[
[
"unifi.0.default.clients.dc:a6:32:fd:s9.9a.mac",
"dc:a6:32:fd:s9.9a"
],
[
"unifi.0.default.clients.dc:a6:32:fd:s9.9a.last_uplink.mac",
"dc:a6:32:fd:s9.9e"
],
[
"unifi.0.default.clients.dc:a6:32:fd:s9.9a.mac",
"dc:a6:32:fd:s9.9b"
],
[
"unifi.0.default.clients.dc:a6:32:fd:s9.9a.last_uplink.mac",
"dc:a6:32:fd:s9.9c"
]
, [
"unifi.0.default.clients.dc:a6:32:fd:s9.9a.mac",
"dc:a6:32:fd:s9.9f"
]
]
dann bekommst du Deine Liste einfach mit:
$[$not($contains($[0],"last_uplink"))].$[1]
wenn man das Vorhandensein mehrerer Strings ausschließen will, dann kann man auch mit regulären Ausdrücken arbeiten.
$[$not($contains($[0],/last_uplink|test/))].$[1]
das schließt aus ob nun "test" oder "last_uplink" in dem String vorhanden ist. Eigentlich finde ich das wieder sehr kompakt.
"unifi.0.default.clients.dc:a6:32:fd:s9.9a.last_uplink.mac"
"unifi.0.default.clients.dc:a6:32:fd:s9.9a.test.mac"
Leider hat das Blockly ein Bug und hängt an die Liste, immer so ein internes Element an. Aber muss man halt abschneiden. - da ich Blockly nicht nutze - und JSONATA von den meisten Blockly-Fans eh nicht verwendet wird, wird wohl keiner ein Issue erstellen.
Hier das Blockly
0e558f1c-fd3a-4fdf-89fd-d0cda3ae0994-image.png
Spoiler
<xml xmlns="https://developers.google.com/blockly/xml">
<variables>
<variable id="f{SPWMDeJ!t?Tt{oHa-w">Liste</variable>
</variables>
<block type="variables_set" id="`3HAp-R7#*2x40x]5pl{" x="-287" y="-187">
<field name="VAR" id="f{SPWMDeJ!t?Tt{oHa-w">Liste</field>
<value name="VALUE">
<block type="convert_json2object" id="cSlw2L%r*FldiptQ+a?U">
<value name="VALUE">
<block type="text" id="|18vjM#(}.YE{KXtX#mU">
<field name="TEXT">[ [ "unifi.0.default.clients.dc:a6:32:fd:s9.9a.mac", "dc:a6:32:fd:s9.9a" ], [ "unifi.0.default.clients.dc:a6:32:fd:s9.9a.last_uplink.mac", "dc:a6:32:fd:s9.9e" ], [ "unifi.0.default.clients.dc:a6:32:fd:s9.9a.mac", "dc:a6:32:fd:s9.9b" ], [ "unifi.0.default.clients.dc:a6:32:fd:s9.9a.last_uplink.mac", "dc:a6:32:fd:s9.9c" ] , [ "unifi.0.default.clients.dc:a6:32:fd:s9.9a.mac", "dc:a6:32:fd:s9.9f" ] ]</field>
</block>
</value>
</block>
</value>
<next>
<block type="debug" id="CN/v16=5#s1D|=8)yk[}">
<field name="Severity">info</field>
<value name="TEXT">
<shadow type="text" id="-n5X=}DS{1k*jws-P:%,">
<field name="TEXT">test</field>
</shadow>
<block type="variables_get" id="}.xvDwB_Zh+k#VBzcMc3">
<field name="VAR" id="f{SPWMDeJ!t?Tt{oHa-w">Liste</field>
</block>
</value>
<next>
<block type="variables_set" id="UFZ-qZdoYJ[UP3;js/SH">
<field name="VAR" id="f{SPWMDeJ!t?Tt{oHa-w">Liste</field>
<value name="VALUE">
<block type="convert_jsonata" id="q/2`1@z7w?(=wWylL6J9">
<value name="EXPRESSION">
<shadow type="text" id="0*U-qP9wt6to2+;(zsXl">
<field name="TEXT">$[$not($contains($[0],"last_uplink"))].$[1]</field>
</shadow>
</value>
<value name="TARGET">
<block type="variables_get" id="v`_w~vTA##99f+,j#CN`">
<field name="VAR" id="f{SPWMDeJ!t?Tt{oHa-w">Liste</field>
</block>
</value>
</block>
</value>
<next>
<block type="debug" id="-F}Nw`irgr)0w_],AYKV">
<field name="Severity">info</field>
<value name="TEXT">
<shadow type="text" id="*fR:|[obP+4|R)-AOCP^">
<field name="TEXT">test</field>
</shadow>
<block type="lists_getSublist" id="}/zTsh*p-V6mK,z!qD$l">
<mutation at1="false" at2="false"></mutation>
<field name="WHERE1">FIRST</field>
<field name="WHERE2">LAST</field>
<value name="LIST">
<block type="variables_get" id="jdxs=WV==C.]F`0XK5VK">
<field name="VAR" id="f{SPWMDeJ!t?Tt{oHa-w">Liste</field>
</block>
</value>
</block>
</value>
</block>
</next>
</block>
</next>
</block>
</next>
</block>
</xml>
Wenn Du es selbst in JSONATA ausprobieren möchtest, hier der Link: https://try.jsonata.org/JjdV45PwH
858691b6-6922-4778-a830-ab1940d0e0c0-image.png