Документация Databird

Арифметические операции

Оператор Обозначение Назначение
Сложение X + Y Складывает значения
Вычитание X - Y Вычитает из левого значения правое
Умножение X * Y Перемножает значения
Деление X / Y Делит левое значение на правое
Остаток от деления X % Y Находит остаток от деления левого значения на правое
Диапазон [X..Y] Генерирует массив возрастающих чисел в заданных границах

Подробнее о каждом арифметическом операторе:

+ (Сложение) в JSONata

Оператор сложения (+) складывает операнды для получения числовой суммы. Если какой-либо из операндов не является числом, произойдет ошибка.

Примеры:

  1. 2 + 810

Untitled

📝 Сложение двух целых чисел.

  1. 2.17 + 5.487.65

Untitled

📝 Оператор сложения также работает с вещественными числами.

  1. 5 + 6 + 7.8918.89

Untitled

📝 Можно складывать сразу несколько чисел, записав их цепочкой.

  1. 10 + “пять” ⇒ Ошибка!

Untitled

❗Один из операндов не является числом, это стало причиной ошибки.

🧩 Официальная документация языка JSONata по + (сложение) на английском языке: http://docs.jsonata.org/other-operators#-concatenation

- (Вычитание) в JSONata

Оператор вычитания (-) вычитает из левого значения правое для получения числовой разницы. Если какой-либо из операндов не является числом, произойдет ошибка.

Примеры:

  1. 10 - 37

Untitled

📝 Оператор вычитания вычитает из левого значения правое.

  1. 15.5 - 114-98.5

Untitled

📝 Оператор вычитания также работает с вещественными числами.

  1. 10 - 8 - 1.50.5

Untitled

📝 Можно вычесть сразу несколько чисел, записав их цепочкой.

  1. 10 - “пять” ⇒ Ошибка!

Untitled

❗Один из операндов не является числом, это стало причиной ошибки.

🧩 Официальная документация языка JSONata по - (вычитание) на английском языке: http://docs.jsonata.org/other-operators#-concatenation

* (Умножение) в JSONata

Оператор умножения (*) перемножает операнды для получения числового произведения. Если какой-либо из операндов не является числом, произойдет ошибка.

Примеры:

  1. 5 * 525

Untitled

📝 Оператор умножения перемножает свои операнды.

  1. 2 * 34.7969.58

Untitled

📝 Оператор умножения также работает с вещественными числами.

  1. 5 * 5 * 2 = 50

Untitled

📝 Можно перемножить сразу несколько чисел, записав их цепочкой.

  1. 5 * “пять” ⇒ Ошибка!

Untitled

❗Один из операндов не является числом, это стало причиной ошибки.

🧩 Официальная документация языка JSONata по * (умножение) на английском языке: http://docs.jsonata.org/other-operators#-concatenation

/ (Деление) в JSONata

Оператор деления (/) делит левое значение на правое для получения числового коэффициента. Если какой-либо из операндов не является числом, произойдет ошибка.

Примеры:

  1. 5 / 22.5

Untitled

📝 Оператор деления делит левый операнд на правый.

  1. 42.12 / 0.3140.4

Untitled

📝 Оператор деления также работает с вещественными числами.

  1. 6 / 0.2 / 122.5

Untitled

📝 Можно произвести несколько делений сразу, записав их цепочкой.

  1. 5 / “пять” ⇒ Ошибка!

Untitled

❗Один из операндов не является числом, это стало причиной ошибки.

  1. 13 / 0null

Untitled

❕При делении на 0 ответом результатом будет null.

🧩 Официальная документация языка JSONata по / (деление) на английском языке: http://docs.jsonata.org/other-operators#-concatenation

% (Остаток от деления) в JSONata

Оператор по модулю (%) делит правое значение на левое, используя деление на целое число, чтобы получить целое частное и остаток. Этот оператор возвращает остаток. Если какой-либо из операндов не является числом, произойдет ошибка.

Примеры:

  1. 5 % 21

Untitled

📝 Используя оператор остатка от деления можно, например, проверить никло на четность.

  1. 18.57 % 10.57

Untitled

📝 Используя оператор деления с остатком на единицу, можно получить дробную часть числа.

  1. 19 % 15 % 20

Untitled

📝 Можно произвести несколько вычислений сразу, записав их цепочкой.

  1. 5 % “пять” ⇒ Ошибка!

Untitled

❗Один из операндов не является числом, это стало причиной ошибки.

  1. 13 % 0 ⇒ null

Untitled

❕При делении на 0 ответом результатом будет null.

🧩 Официальная документация языка JSONata по % (остаток от деления) на английском языке: http://docs.jsonata.org/other-operators#-concatenation

.. (Диапазон) в JSONata

Оператор генерации последовательности (..) используется для создания массива монотонно возрастающих целых чисел, начинающихся с левого и заканчивающихся правым числом. Если какой-либо из операндов не является целым числом, произойдет ошибка. Генератор последовательности может использоваться только в квадратных скобках (конструкторе массива) [].

Примеры:

  1. [1..5][1, 2, 3, 4, 5]

Untitled

📝 Оператор диапазона сгенерировал массив возрастающих, начиная с левого, заканчивая правым, чисел.

  1. [2..4, 7..9][2, 3, 4, 7, 8, 9]

Untitled

📝 В одних квадратных скобках может быть использовано сразу несколько операторов диапазона.

  1. 2..8 ⇒ Ошибка!

Untitled

❗При использовании оператора диапазона не были поставлены квадратные скобки [].

  1. [1..”пять”] ⇒ Ошибка!

Untitled

❗Один из операндов не является числом, это стало причиной ошибки.

  1. [2.5..10] ⇒ Ошибка!

Untitled

❗Один из операндов не является целым числом, это стало причиной ошибки.

🧩 Официальная документация языка JSONata по .. (диапазон) на английском языке: http://docs.jsonata.org/other-operators#-concatenation

при написании правил Databird

Примеры:

  1. Требуется произвести дополнительную наценку в размере 100 рублей на каждый товар.

Untitled

  📝 Атрибуту price (цена товара) присваем исходное поле price, после чего оператором сложения добавляем 100.
  1. Требуется узнать размер скидки на товар.

    Untitled

    📝 Атрибуту discount (скидка) присваиваем разность исходных полей price и oldPrice.

❕Обратите внимание, что в представленных примерах, исходные поля должны иметь формат числа, а не строки. 12345 - верно, “12345” или ‘12345’ - неверно. Привести к числовому формату можно при помощи функции $number(аргумет).

Untitled