Повідомлення про переклад ШІ
Ця документація була автоматично перекладена штучним інтелектом.
Обробка циклів
Обробка циклів використовується для повторного відображення даних з масивів або об'єктів шляхом визначення початкових і кінцевих маркерів циклу. Нижче описано кілька поширених сценаріїв.
Ітерація по масивах
1. Опис синтаксису
- Використовуйте тег
{d.array[i].property} для визначення поточного елемента циклу та {d.array[i+1].property} для вказівки наступного елемента, щоб позначити область циклу.
- Під час циклу перший рядок (частина
[i]) автоматично використовується як шаблон для повторення; вам потрібно лише один раз написати приклад циклу в шаблоні.
Приклад формату синтаксису:
{d.назваМасиву[i].властивість}
{d.назваМасиву[i+1].властивість}
2. Приклад: Простий цикл по масиву
Дані
{
"cars": [
{ "brand": "Toyota", "id": 1 },
{ "brand": "Hyundai", "id": 2 },
{ "brand": "BMW", "id": 3 },
{ "brand": "Peugeot","id": 4 }
]
}
Шаблон
Carsid
{d.cars[i].brand}{d.cars[i].id}
{d.cars[i+1].brand}
Результат
Carsid
Toyota1
Hyundai2
BMW3
Peugeot4
3. Приклад: Вкладений цикл по масиву
Підходить для випадків, коли масив містить вкладені масиви; вкладеність може бути нескінченною.
Дані
[
{
"brand": "Toyota",
"models": [
{ "size": "Prius 4", "power": 125 },
{ "size": "Prius 5", "power": 139 }
]
},
{
"brand": "Kia",
"models": [
{ "size": "EV4", "power": 450 },
{ "size": "EV6", "power": 500 }
]
}
]
Шаблон
{d[i].brand}
Models
{d[i].models[i].size} - {d[i].models[i].power}
{d[i].models[i+1].size}
{d[i+1].brand}
Результат
Toyota
Models
Prius 4 - 125
Prius 5 - 139
Kia
4. Приклад: Двоспрямований цикл (розширена функція, v4.8.0+)
Двоспрямовані цикли дозволяють одночасно ітерувати як по рядках, так і по стовпцях, що підходить для створення порівняльних таблиць та інших складних макетів (примітка: наразі деякі формати офіційно підтримуються лише в шаблонах DOCX, HTML та MD).
Дані
{
"titles": [
{ "name": "Kia" },
{ "name": "Toyota" },
{ "name": "Hopium" }
],
"cars": [
{ "models": [ "EV3", "Prius 1", "Prototype" ] },
{ "models": [ "EV4", "Prius 2", "" ] },
{ "models": [ "EV6", "Prius 3", "" ] }
]
}
Шаблон
{d.titles[i].name}{d.titles[i+1].name}
{d.cars[i].models[i]}{d.cars[i].models[i+1]}
{d.cars[i+1].models[i]}
Результат
KiaToyotaHopium
EV3Prius 1Prototype
EV4Prius 2
EV6Prius 3
5. Приклад: Доступ до значень ітератора циклу (v4.0.0+)
У циклі ви можете безпосередньо отримати доступ до індексу поточної ітерації, що допомагає задовольнити особливі вимоги до форматування.
Приклад шаблону
{d[i].cars[i].other.wheels[i].tire.subObject:add(.i):add(..i):add(...i)}
Примітка: Кількість крапок вказує на рівень індексу (наприклад, .i представляє поточний рівень, тоді як ..i представляє попередній рівень). Наразі існує проблема зі зворотним порядком; будь ласка, зверніться до офіційної документації для отримання детальної інформації.
Ітерація по об'єктах
1. Опис синтаксису
- Для властивостей в об'єкті використовуйте
.att для отримання назви властивості та .val для отримання її значення.
- Під час ітерації кожен елемент властивості обробляється по черзі.
Приклад формату синтаксису:
{d.назваОб'єкта[i].att} // назва властивості
{d.назваОб'єкта[i].val} // значення властивості
2. Приклад: Ітерація по властивостях об'єкта
Дані
{
"myObject": {
"paul": "10",
"jack": "20",
"bob": "30"
}
}
Шаблон
People namePeople age
{d.myObject[i].att}{d.myObject[i].val}
{d.myObject[i+1].att}{d.myObject[i+1].val}
Результат
People namePeople age
paul10
jack20
bob30
Обробка сортування
Використовуючи функцію сортування, ви можете безпосередньо сортувати дані масиву в шаблоні.
1. Опис синтаксису: Сортування за зростанням
- Використовуйте атрибут як критерій сортування в тезі циклу. Формат синтаксису:
{d.array[атрибутСортування, i].властивість}
{d.array[атрибутСортування+1, i+1].властивість}
- Якщо потрібне сортування за кількома критеріями, розділіть атрибути комами в дужках.
2. Приклад: Сортування за числовим атрибутом
Дані
{
"cars": [
{ "brand": "Ferrari", "power": 3 },
{ "brand": "Peugeot", "power": 1 },
{ "brand": "BMW", "power": 2 },
{ "brand": "Lexus", "power": 1 }
]
}
Шаблон
Cars
{d.cars[power, i].brand}
{d.cars[power+1, i+1].brand}
Результат
Cars
Peugeot
Lexus
BMW
Ferrari
3. Приклад: Сортування за кількома атрибутами
Дані
{
"cars": [
{ "brand": "Ferrari", "power": 3, "sub": { "size": 1 } },
{ "brand": "Aptera", "power": 1, "sub": { "size": 20 } },
{ "brand": "Peugeot", "power": 1, "sub": { "size": 20 } },
{ "brand": "BMW", "power": 2, "sub": { "size": 1 } },
{ "brand": "Kia", "power": 1, "sub": { "size": 10 } }
]
}
Шаблон
Cars
{d.cars[power, sub.size, i].brand}
{d.cars[power+1, sub.size+1, i+1].brand}
Результат
Cars
Kia
Aptera
Peugeot
BMW
Ferrari
Обробка фільтрації
Фільтрація використовується для відсіювання рядків у циклі на основі певних умов.
1. Опис синтаксису: Числова фільтрація
- Додайте умови в тег циклу (наприклад,
age > 19). Формат синтаксису:
{d.array[i, умова].властивість}
2. Приклад: Числова фільтрація
Дані
[
{ "name": "John", "age": 20 },
{ "name": "Eva", "age": 18 },
{ "name": "Bob", "age": 25 },
{ "name": "Charly", "age": 30 }
]
Шаблон
People
{d[i, age > 19, age < 30].name}
{d[i+1, age > 19, age < 30].name}
Результат
3. Опис синтаксису: Фільтрація за рядком
- Вказуйте умови для рядків, використовуючи одинарні лапки. Наприклад:
{d.array[i, type='rocket'].name}
4. Приклад: Фільтрація за рядком
Дані
[
{ "name": "Falcon 9", "type": "rocket" },
{ "name": "Model S", "type": "car" },
{ "name": "Model 3", "type": "car" },
{ "name": "Falcon Heavy","type": "rocket" }
]
Шаблон
People
{d[i, type='rocket'].name}
{d[i+1, type='rocket'].name}
Результат
People
Falcon 9
Falcon Heavy
5. Опис синтаксису: Фільтрація перших N елементів
- Ви можете використовувати індекс циклу
i для фільтрації перших N елементів. Наприклад:
{d.array[i, i < N].властивість}
6. Приклад: Фільтрація перших двох елементів
Дані
[
{ "name": "Falcon 9" },
{ "name": "Model S" },
{ "name": "Model 3" },
{ "name": "Falcon Heavy" }
]
Шаблон
People
{d[i, i < 2].name}
{d[i+1, i < 2].name}
Результат
7. Опис синтаксису: Виключення останніх N елементів
- Використовуйте негативну індексацію
i для представлення елементів з кінця. Наприклад:
{d.array[i=-1].властивість} отримує останній елемент.
{d.array[i, i!=-1].властивість} виключає останній елемент.
8. Приклад: Виключення останнього та двох останніх елементів
Дані
[
{ "name": "Falcon 9" },
{ "name": "Model S" },
{ "name": "Model 3" },
{ "name": "Falcon Heavy" }
]
Шаблон
Останній елемент: {d[i=-1].name}
Виключення останнього елемента:
{d[i, i!=-1].name}
{d[i+1, i!=-1].name}
Виключення двох останніх елементів:
{d[i, i<-2].name}
{d[i+1, i<-2].name}
Результат
Останній елемент: Falcon Heavy
Виключення останнього елемента:
Falcon 9
Model S
Model 3
Виключення двох останніх елементів:
Falcon 9
Model S
9. Опис синтаксису: Інтелектуальна фільтрація
- За допомогою блоків інтелектуальних умов ви можете приховати весь рядок на основі складних умов. Наприклад:
{d.array[i].властивість:ifIN('ключовеСлово'):drop(row)}
10. Приклад: Інтелектуальна фільтрація
Дані
[
{ "name": "Falcon 9" },
{ "name": "Model S" },
{ "name": "Model 3" },
{ "name": "Falcon Heavy" }
]
Шаблон
People
{d[i].name}
{d[i].name:ifIN('Falcon'):drop(row)}
{d[i+1].name}
Результат
(Примітка: Рядки, що містять "Falcon" у шаблоні, видаляються умовою інтелектуальної фільтрації.)
Обробка видалення дублікатів
1. Опис синтаксису
- За допомогою користувацького ітератора ви можете отримати унікальні (неповторювані) елементи на основі значення певної властивості. Синтаксис схожий на звичайний цикл, але автоматично ігнорує дублікати.
Приклад формату:
{d.array[властивість].властивість}
{d.array[властивість+1].властивість}
2. Приклад: Вибір унікальних даних
Дані
[
{ "type": "car", "brand": "Hyundai" },
{ "type": "plane", "brand": "Airbus" },
{ "type": "plane", "brand": "Boeing" },
{ "type": "car", "brand": "Toyota" }
]
Шаблон
Vehicles
{d[type].brand}
{d[type+1].brand}
Результат