Сравнение объектов - Blockly — различия между версиями

Материал из razgovorov.ru
Перейти к: навигация, поиск
(Новая страница: «Блок сравнивает два объекта и сообщает есть ли расхождения в интересующей части. Возвра…»)
 
м (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 указывается список свойств для сравнения.

Алгоритм работы:

  1. Для каждого объекта
    1. Перебирается список, и получаются значения свойств указанных groups
    2. Значения свойств groups приводятся к строке и склеиваются через разделитель в указанном порядке.
    3. Значения свойств fields помещаются в словарь с ключем сформированном из groups. Если значение свойства fields является числом, то они суммируются
  2. Полученные индексированные по groups объекты сравниваются. Если есть расхождения в результирующую строку добавляется имя списка где есть расхождения (и ключи различающихся строк).