TIP
यह दस्तावेज़ AI द्वारा अनुवादित किया गया है। किसी भी अशुद्धि के लिए, कृपया अंग्रेजी संस्करण देखें
लूप प्रोसेसिंग
लूप प्रोसेसिंग का उपयोग ऐरे या ऑब्जेक्ट में मौजूद डेटा को बार-बार रेंडर करने के लिए किया जाता है। इसमें लूप के शुरुआती और अंतिम मार्कर को परिभाषित करके दोहराई जाने वाली सामग्री की पहचान की जाती है। नीचे कुछ सामान्य स्थितियाँ बताई गई हैं।
ऐरे पर इटरेट करना
1. सिंटैक्स विवरण
{d.array[i].property} टैग का उपयोग करके आप वर्तमान लूप आइटम को परिभाषित कर सकते हैं, और {d.array[i+1].property} का उपयोग करके अगले आइटम को निर्दिष्ट कर सकते हैं ताकि लूप क्षेत्र को चिह्नित किया जा सके।
- लूप के दौरान, पहली पंक्ति (
[i] वाला भाग) को दोहराव के लिए स्वचालित रूप से टेम्पलेट के रूप में उपयोग किया जाता है; आपको टेम्पलेट में लूप का उदाहरण केवल एक बार लिखने की आवश्यकता है।
उदाहरण सिंटैक्स प्रारूप:
{d.arrayName[i].property}
{d.arrayName[i+1].property}
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.objectName[i].att} // प्रॉपर्टी का नाम
{d.objectName[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[sortingAttribute, i].property}
{d.array[sortingAttribute+1, i+1].property}
- एकाधिक सॉर्टिंग मानदंड के लिए, स्क्वायर ब्रैकेट के भीतर एट्रीब्यूट्स को कॉमा से अलग करें।
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, condition].property}
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].property}
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].property} अंतिम आइटम प्राप्त करता है।
{d.array[i, i!=-1].property} अंतिम आइटम को बाहर करता है।
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].property:ifIN('keyword'):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[property].property}
{d.array[property+1].property}
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}
परिणाम