Сравнение объектов - Blockly — различия между версиями
м (added Category:Blockly using HotCat) |
м (Разговоров Михаил переименовал страницу Сравнение объектов (Blockly) в Сравнение объектов - Blockly без оставления перенаправления) |
(не показана 1 промежуточная версия этого же участника) | |
(нет различий)
|
Текущая версия на 12:23, 9 августа 2021
Блок сравнивает два объекта и сообщает есть ли расхождения в интересующей части.
Возвращает строку содержащую список полей где есть расхождения или пустую строку если расхождений нет.
Сравнение объектов по конкретным свойствам
В параметр props нужно добавить массив с именами всех свойств по которым требуется сравнить объекты.
Блок получит и сравнит указанные параметры, имена всех различающихся параметров будут добавлены в строку
Процедура получения значения свойства для сравнения идентична блоку obj prop get
Сравнение списков по конкретным свойствам
В блоке можно сравнивать списки по значимым свойствам. Для этого через настройки блока нужно добавить список и указать имя свойства объекта где находится данный список.
В свойство блока groups добавляется список свойств по которым группируется список (составляется уникальный ключ)
В свойство блока fields указывается список свойств для сравнения.
Алгоритм работы:
- Для каждого объекта
- Перебирается список, и получаются значения свойств указанных groups
- Значения свойств groups приводятся к строке и склеиваются через разделитель в указанном порядке.
- Значения свойств fields помещаются в словарь с ключем сформированном из groups. Если значение свойства fields является числом, то они суммируются
- Полученные индексированные по groups объекты сравниваются. Если есть расхождения в результирующую строку добавляется имя списка где есть расхождения (и ключи различающихся строк).