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

Материал из razgovorov.ru
Перейти к: навигация, поиск
м (added Category:Blockly using HotCat)
м (Разговоров Михаил переименовал страницу Blockly - compare objects в Сравнение объектов (Blockly) без оставления перенаправления)
(нет различий)

Версия 12:20, 9 августа 2021

Блок сравнивает два объекта и сообщает есть ли расхождения в интересующей части.

Возвращает строку содержащую список полей где есть расхождения или пустую строку если расхождений нет.

Сравнение объектов по конкретным свойствам

В параметр props нужно добавить массив с именами всех свойств по которым требуется сравнить объекты.

Блок получит и сравнит указанные параметры, имена всех различающихся параметров будут добавлены в строку

Процедура получения значения свойства для сравнения идентична блоку obj prop get

Сравнение списков по конкретным свойствам

В блоке можно сравнивать списки по значимым свойствам. Для этого через настройки блока нужно добавить список и указать имя свойства объекта где находится данный список.

В свойство блока groups добавляется список свойств по которым группируется список (составляется уникальный ключ)

В свойство блока fields указывается список свойств для сравнения.

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

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