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