Арифметические операции
| Оператор | Обозначение | Назначение |
|---|---|---|
| Сложение | X + Y |
Складывает значения |
| Вычитание | X - Y |
Вычитает из левого значения правое |
| Умножение | X * Y |
Перемножает значения |
| Деление | X / Y |
Делит левое значение на правое |
| Остаток от деления | X % Y |
Находит остаток от деления левого значения на правое |
| Диапазон | [X..Y] |
Генерирует массив возрастающих чисел в заданных границах |
Подробнее о каждом арифметическом операторе:
+ (Сложение) в JSONata
Оператор сложения (+) складывает операнды для получения числовой суммы. Если какой-либо из операндов не является числом, произойдет ошибка.
Примеры:
2 + 8⇒10

📝 Сложение двух целых чисел.
2.17 + 5.48⇒7.65

📝 Оператор сложения также работает с вещественными числами.
5 + 6 + 7.89⇒18.89

📝 Можно складывать сразу несколько чисел, записав их цепочкой.
10 + “пять”⇒ Ошибка!

❗Один из операндов не является числом, это стало причиной ошибки.
🧩 Официальная документация языка JSONata по + (сложение) на английском языке: http://docs.jsonata.org/other-operators#-concatenation
- (Вычитание) в JSONata
Оператор вычитания (-) вычитает из левого значения правое для получения числовой разницы. Если какой-либо из операндов не является числом, произойдет ошибка.
Примеры:
10 - 3⇒7

📝 Оператор вычитания вычитает из левого значения правое.
15.5 - 114⇒-98.5

📝 Оператор вычитания также работает с вещественными числами.
10 - 8 - 1.5⇒0.5

📝 Можно вычесть сразу несколько чисел, записав их цепочкой.
10 - “пять”⇒ Ошибка!

❗Один из операндов не является числом, это стало причиной ошибки.
🧩 Официальная документация языка JSONata по - (вычитание) на английском языке: http://docs.jsonata.org/other-operators#-concatenation
* (Умножение) в JSONata
Оператор умножения (*) перемножает операнды для получения числового произведения. Если какой-либо из операндов не является числом, произойдет ошибка.
Примеры:
5 * 5⇒25

📝 Оператор умножения перемножает свои операнды.
2*34.79⇒69.58

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

📝 Можно перемножить сразу несколько чисел, записав их цепочкой.
5 * “пять”⇒ Ошибка!

❗Один из операндов не является числом, это стало причиной ошибки.
🧩 Официальная документация языка JSONata по * (умножение) на английском языке: http://docs.jsonata.org/other-operators#-concatenation
/ (Деление) в JSONata
Оператор деления (/) делит левое значение на правое для получения числового коэффициента. Если какой-либо из операндов не является числом, произойдет ошибка.
Примеры:
5 / 2⇒2.5

📝 Оператор деления делит левый операнд на правый.
42.12/0.3⇒140.4

📝 Оператор деления также работает с вещественными числами.
6 / 0.2 / 12⇒2.5

📝 Можно произвести несколько делений сразу, записав их цепочкой.
5 / “пять”⇒ Ошибка!

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

❕При делении на 0 ответом результатом будет null.
🧩 Официальная документация языка JSONata по / (деление) на английском языке: http://docs.jsonata.org/other-operators#-concatenation
% (Остаток от деления) в JSONata
Оператор по модулю (%) делит правое значение на левое, используя деление на целое число, чтобы получить целое частное и остаток. Этот оператор возвращает остаток. Если какой-либо из операндов не является числом, произойдет ошибка.
Примеры:
5 % 2⇒1

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

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

📝 Можно произвести несколько вычислений сразу, записав их цепочкой.
5 % “пять”⇒ Ошибка!

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

❕При делении на 0 ответом результатом будет null.
🧩 Официальная документация языка JSONata по % (остаток от деления) на английском языке: http://docs.jsonata.org/other-operators#-concatenation
.. (Диапазон) в JSONata
Оператор генерации последовательности (..) используется для создания массива монотонно возрастающих целых чисел, начинающихся с левого и заканчивающихся правым числом. Если какой-либо из операндов не является целым числом, произойдет ошибка. Генератор последовательности может использоваться только в квадратных скобках (конструкторе массива) [].
Примеры:
[1..5]⇒[1, 2, 3, 4, 5]

📝 Оператор диапазона сгенерировал массив возрастающих, начиная с левого, заканчивая правым, чисел.
[2..4, 7..9]⇒[2, 3, 4, 7, 8, 9]

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

❗При использовании оператора диапазона не были поставлены квадратные скобки [].
[1..”пять”]⇒ Ошибка!

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

❗Один из операндов не является целым числом, это стало причиной ошибки.
🧩 Официальная документация языка JSONata по .. (диапазон) на английском языке: http://docs.jsonata.org/other-operators#-concatenation
при написании правил Databird
Примеры:
- Требуется произвести дополнительную наценку в размере 100 рублей на каждый товар.

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

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