@diod89 Ветка для русскоговорящих пользователей BAS находится здесь: https://community.bablosoft.com/category/19/поддержка. А здесь: https://community.bablosoft.com/category/9/support находится ветка для англоговорящих пользователей BAS! Я последние 10 ваших тем переносил с одной ветки на другую, мне надоело, следующую вашу тему созданную в неправильной ветке я просто заблокирую
Обработка списка
-
Суть следующая.
Есть список с повторяющимися значениями, напримерсобака кошка птица кошка птица кошка птица собакаНужно обработать список и получить результат:
собака - (количество упоминаний) - 2 кошка - 3 птица - 3Есть у кого то идеи какие то?
-
@DrPrime может сперва получить количество элементов списка - затем - удалить по значению например собака и после каждого удаления значения получить количество строк, и арифметикой получить разницу до удаления и после?
так же наверное можно регуляркой распарсить список и получить количество элементов
-
Все таки способ немного не подходит
делаю так:
forreach список:
получаю длину списка
удаляю forreach data со списка
получаю длину списка
разницу вывожу в переменную
вывожу результат - forreach data:количество упоминанийНо все равно в forrech data попадают элементы списка, которые уже были посчитаны, и в результаты попадают элементы с упоминанием 0
Временно сделал в средине после получения разницы, если она равна 0 то начинается следующая итерация, но все равно как то не то -
function unique(arr) {
var result = [];nextInput:
for (var i = 0; i < arr.length; i++) {
var str = arr[i]; // для каждого элемента
for (var j = 0; j < result.length; j++) { // ищем, был ли он уже?
if (result[j] == str) continue nextInput; // если да, то следующий
}
result.push(str);
}return result;
}var strings = [
"собака",
"кошка",
"птица",
"кошка",
"птица",
"кошка",
"птица",
"собака"
];alert( unique(strings) );
-
Вот более менее простой способ решения проблемы на js
[[LIST]] = ['собака', 'кошка', 'птица', 'кошка', 'птица', 'кошка', 'птица', 'собака'] [[HASH]] = [[LIST]].reduce(function(hash, elem){ hash[elem] = (hash[elem] || 0) + 1; return hash }, {}) log(JSON.stringify([[HASH]]))