@defol ночью проверял в BAS. Есть баг в самом движке модуля, не совсем корректно обрабатывает массивы внутри фильтров. Буду править позже. Пока, как временное решение, могу предложить вам два плюс-минус адекватных варианта.
Использовать не массив, а строку с разделителем: $.html[?("India:Philippines:Switzerland:Russia".split(":").indexOf(@.country_name) < 0)].user_id Отфильтровать все с помощью Выполнить код: var excluded = ["India", "Russia", "Philippines"]; [[RESULT]] = JSON.parse([[SOURCE]]).html.filter(function (val) { return excluded.indexOf(val['country_name']) < 0; }).map(function (val) { return val['user_id']; });Подружить indexOf с маской
-
Здравствуйте. Можно ли как-то в методе indexOf использовать маску или какое-то аналогичное решение например:
"Мама мыла раму".toLowerCase()).indexOf("мама".toLowerCase().trim()) >= 0 - это true
"Мама мыла раму".toLowerCase()).indexOf("мама*раму".toLowerCase().trim()) >= 0 - это false (понятное дело что такой метод не будет работать, но хотелось бы что бы такая маска возвращала true)
Как реализовать? -
@john_bradley создайте функцию с названием indexOf и переделайте логику дефолтного indexOf так, как вам нужно.
Чтобы использовать в разных частях проекта - запихните ее в действие 'Выполнить код' в начале проекта -
Это понятно, что ее надо переделать . Вопрос в том, как сделать что бы в indexOf работала маска в тексте или аналогичный метод?
-
@john_bradley Можно с помощью Regex-а
String.prototype.regexIndexOf = function(regex, startpos) { var indexOf = this.substring(startpos || 0).search(regex); return (indexOf >= 0) ? (indexOf + (startpos || 0)) : indexOf; } "Мама мыла раму".toLowerCase().regexIndexOf("мама{1,}раму") // return -1 "Мама мыла раму".toLowerCase().regexIndexOf("мама.{1,}раму") // return 0 -
@oyasumi-punpun Огонь! То что нужно, спасибо