Сравнение объектов - Blockly — различия между версиями
(Новая страница: «Блок сравнивает два объекта и сообщает есть ли расхождения в интересующей части. Возвра…») |
м (added Category:Blockly using HotCat) |
||
Строка 23: | Строка 23: | ||
## Значения свойств fields помещаются в словарь с ключем сформированном из groups. Если значение свойства fields является числом, то они суммируются | ## Значения свойств fields помещаются в словарь с ключем сформированном из groups. Если значение свойства fields является числом, то они суммируются | ||
# Полученные индексированные по groups объекты сравниваются. Если есть расхождения в результирующую строку добавляется имя списка где есть расхождения (и ключи различающихся строк). | # Полученные индексированные по groups объекты сравниваются. Если есть расхождения в результирующую строку добавляется имя списка где есть расхождения (и ключи различающихся строк). | ||
+ | |||
+ | [[Категория:Blockly]] |
Версия 09:46, 23 июля 2021
Блок сравнивает два объекта и сообщает есть ли расхождения в интересующей части.
Возвращает строку содержащую список полей где есть расхождения или пустую строку если расхождений нет.
Сравнение объектов по конкретным свойствам
В параметр props нужно добавить массив с именами всех свойств по которым требуется сравнить объекты.
Блок получит и сравнит указанные параметры, имена всех различающихся параметров будут добавлены в строку
Процедура получения значения свойства для сравнения идентична блоку obj prop get
Сравнение списков по конкретным свойствам
В блоке можно сравнивать списки по значимым свойствам. Для этого через настройки блока нужно добавить список и указать имя свойства объекта где находится данный список.
В свойство блока groups добавляется список свойств по которым группируется список (составляется уникальный ключ)
В свойство блока fields указывается список свойств для сравнения.
Алгоритм работы:
- Для каждого объекта
- Перебирается список, и получаются значения свойств указанных groups
- Значения свойств groups приводятся к строке и склеиваются через разделитель в указанном порядке.
- Значения свойств fields помещаются в словарь с ключем сформированном из groups. Если значение свойства fields является числом, то они суммируются
- Полученные индексированные по groups объекты сравниваются. Если есть расхождения в результирующую строку добавляется имя списка где есть расхождения (и ключи различающихся строк).