допустим, у вас есть массив с именем ips:
[
"[\"185.241.208.232",
"194.26.192.64",
"171.25.193.25",
"\"]"
]
как мне отфильтровать [" и "] из массива.
массив, попадающий в список наблюдения, должен выглядеть так:
[
"185.241.208.232",
"194.26.192.64",
"171.25.193.25"
]
мне нужно сделать это без использования цикла for для просмотра каждого элемента \ (поскольку фактический список очень длинный, и это заставит приложение логики работать в течение некоторого времени). Я случайно знаю, что \ существует в начале и конце списка.
как мне отфильтровать [" и "] из массива. что подразумевается под этим @HarriS?
я добавил скриншот, чтобы показать свой вариант использования. где я хочу создать список наблюдения, но мне мешает \ в массиве. я также включил пример моего идеального результата. (в моем реальном случае я получил этот массив из HTTP-запроса.
ок, понял, дал ответ ниже.
Есть ли способ сделать это без цикла for. если в этом списке IP-адресов будет 10 тыс. IP-адресов, это будет очень медленно.
AFAIK, без использования цикла, только это возможно
Знаете ли вы, как разрезать массив с помощью выражений? как и в python mylist=[1,2,3] , mylist[1:] выведет [2,3]. эквивалент этого, но с выражениями? я подумал, что будет использоваться что-то вроде len(), а затем одна из индексных функций. достичь [1:-1]
Нет, @HarriS, но я тоже проверю это
@HarriS Я добавил решение, не требующее цикла.





Вы можете использовать ниже design, чтобы получить ожидаемые результаты:

Затем:
replace(replace(items('for_each'),'["',''),'"]','')

Затем:
empty(item())

Output:

CodeView:
{
"definition": {
"$schema": "https://schema.management.azure.com/providers/Microsoft.Logic/schemas/2016-06-01/workflowdefinition.json#",
"actions": {
"Filter_array": {
"inputs": {
"from": "@variables('var2')",
"where": "@equals(empty(item()), false)"
},
"runAfter": {
"For_each": [
"Succeeded"
]
},
"type": "Query"
},
"For_each": {
"actions": {
"Append_to_array_variable": {
"inputs": {
"name": "var2",
"value": "@outputs('Compose')"
},
"runAfter": {
"Compose": [
"Succeeded"
]
},
"type": "AppendToArrayVariable"
},
"Compose": {
"inputs": "@replace(replace(items('for_each'),'[\"',''),'\"]','')",
"runAfter": {},
"type": "Compose"
}
},
"foreach": "@variables('var')",
"runAfter": {
"Initialize_variable_2": [
"Succeeded"
]
},
"type": "Foreach"
},
"Initialize_variable": {
"inputs": {
"variables": [
{
"name": "var",
"type": "array",
"value": [
"[\"185.241.208.232",
"194.26.192.64",
"171.25.193.25",
"\"]"
]
}
]
},
"runAfter": {},
"type": "InitializeVariable"
},
"Initialize_variable_2": {
"inputs": {
"variables": [
{
"name": "var2",
"type": "array"
}
]
},
"runAfter": {
"Initialize_variable": [
"Succeeded"
]
},
"type": "InitializeVariable"
}
},
"contentVersion": "1.0.0.0",
"outputs": {},
"parameters": {},
"triggers": {
"manual": {
"inputs": {
"schema": {}
},
"kind": "Http",
"type": "Request"
}
}
},
"parameters": {}
}
Для достижения желаемого результата не нужно использовать На каждую петель - это очень неэффективно.
Вам нужно использовать всего 2 действия:
Просмотр кода:
{
"inputs": {
"from": [
"[\"185.241.208.232",
"194.26.192.64",
"171.25.193.25",
"\"]"
],
"select": "@replace(replace(replace(item(), '[', ''), ']', ''), '\"', '')"
}
}
Просмотр кода:
{
"inputs": {
"from": "@body('Select')",
"where": "@greater(length(item()), 0)"
}
}
Можете ли вы четко изложить свой вопрос с помощью изображений?