Directual
Menu

Использование Lodash и сортировка массивов в Directual

28 июня 2023 г.

Мы все знаем, что no-code разработка призвана упростить процесс создания приложений без использования традиционных методов программирования. Один из инструментов, которым пользуются no-code разработчики — Lodash, JavaScript-библиотека с функциями, которые значительно упрощают работу с массивами, объектами и функциями. В этом уроке объясняется, как использовать JavaScript-библиотеку Lodash для сортировки массивов в Directual.

Использование Lodash и сортировка массивов в Directual

Задача

Допустим, у вас есть массив-ссылка, созданный с помощью шага Find object, и теперь вам нужно отсортировать этот массив и составить список, содержащий следующую информацию в определённом порядке:

  • Имя
  • Возраст

Шаг Find object позволяет искать объекты в различных структурах данных. Он также может:

  • Сохранять объекты в виде массива-ссылки
  • Подсчитывать объекты
  • Суммировать объекты по определённому полю
  • Составлять массив из их полей

Структуры данных

В качестве примера используем структуру данных под названием Users. У неё всего три поля:

  • ID (ID объекта)
  • Name
  • Age

Теперь создадим новую структуру данных и назовём её My_struct. Эта структура данных также содержит три поля:

  • ID
  • User IDs (массив-ссылка на структуру Users)
  • Users to Display (массив, который вы будете использовать для составления списка)

Конфигурация полей структуры данных

Типичный пример объекта

Сценарии

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

Создайте новый сценарий. Далее, на шаге Edit object, выберите структуру Users_to_display. Включите Coding Mode и введите следующее выражение:

_.sortByAll([ {{#user_ids}} { name: "{{name}}", age: {{age}} }, {{/user_ids}} ], ["age"]).map(function(i) { return i.name + ' – ' + i.age + ' years old' }).join(',')

Обратите внимание, что кавычки вокруг {{age}} не нужны, поскольку это значение — число. Согласно нотации JS числа и логические значения не заключаются в кавычки.

Это выражение позволяет вам применить метод sortByAll к массиву, затем собрать массив строк и, наконец, с помощью функции join преобразовать JS-массив в массив Directual.

Обратите внимание! Directual совместим только с версией Lodash 3.10.1.

Важно! Не забывайте, что массивы и массивы-ссылки в базе данных Directual являются строками, в которых элементы должны быть разделены запятой. Чтобы преобразовать JS-массив в массив Directual, используйте функцию .join(","), а функцию split(",") — чтобы преобразовать его обратно.

Хорошо, теперь пропустите объект через сценарий. Великолепно, не правда ли?

Вы также можете использовать шаблонизацию для массива, чтобы он выглядел ещё лучше:

Настройка порядка сортировки

Вы можете использовать метод sortByOrder, чтобы изменить порядок сортировки элементов:

Используйте `desc` — для сортировки по убыванию и `asc` — для сортировки по возрастанию.

Выражение должно выглядеть так:

_.sortByOrder([ {{#user_ids}} { name: "{{name}}", age: {{age}} }, {{/user_ids}} ], ["age"], ["desc"]).map(function(i) { return i.name + ' – ' + i.age + ' years old' }).join(',')

Вот как теперь выглядит результат

Заключение

С Directual и Lodash можно сделать много интересного. Дерзайте, экспериментируйте! Если у вас возникнут трудности, не стесняйтесь обращаться за помощью в наше No-code сообщество. Также ознакомьтесь с нашим ускоренным курсом 101, чтобы узнать больше о Directual и его возможностях.

FAQ

Что такое Lodash?

Lodash — это JavaScript-библиотека, которая предоставляет служебные функции для решения типовых задач программирования с использованием парадигмы функционального программирования.

Что такое массив?

Массив — это набор элементов, или данных, хранящихся в смежных ячейках памяти, также известных как системы баз данных.

Можно ли использовать Lodash и Directual вместе?

Да, можно. Но учтите, что Directual поддерживает версию 3.10.1 Lodash.
Евгений Доронин
Копирайтер в Directual
← Назад к списку