@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']; });Помогите пожалуйста со счетчиком.
-
Есть список со значениями в разброс. В итоге требуется подсчитать количество повторений каждого значения и получить данные в таком виде: 11;Апельсин, 3;Банан, 7;Груша, 3;Слива, 6;Яблоко
Сделала по этому принципу. (
Сортируем список через экшн "Сортировать".
Заводим счетчик повторений каждого числа. Устанавливаем его на 1.
В foreach с первым элементом ничего не делаем и сохраняем его в переменную. Со всеми остальными:если элемент равен предыдущему, увеличиваем счетчик на 1 и сохраняем его в переменную. если не равен, то пишем в ответ счетчик повторений/количество элементов в массиве x 100, после чего устанавливаем счетчик снова на 1 и сохраняем текущий элемент в переменную.)Считает все правильно, но проблема в том, что в нужном мне списке более миллиона значений, и эта конструкция обрабатывает его очень медленно . Подсказали, что можно сделать с помощью js
const Counter = () => {
let counts = Object.create(null);
return {
update(el) {
if (el in counts)
counts[el] += 1;
else
counts[el] = 1;
},
get(el) {
return counts[el] || 0;
},
result() {
return counts;
},
};
};
c = Counter();
c.update("123");
c.update("123");
c.update("12312");
console.log(c.result());
console.log(c.get(123));Но что из этого куда прописывать, я разобраться не могу, помогите пожалуйста. 0_1553073283119_counter.xml
-
@usertrue Согласна. Мне в Пайтоне сделали - обработка заняла 7 секунд. Однако мне нужно этот функционал прикрутить к своему скрипту. То, что у меня получилось - в скрипте в первом посте, однако работает медленно. Поэтому я попросила помощи с реализацией грамотного подхода.
-
@wwwin Вот скриптик, список из 10 миллионов чисел у меня обошел примерно за 40сек
0_1553083793985_counter.xml