عند العمل مع المصفوفات في إجراءات Code، قد تواجه تحديين شائعين:
- مصفوفات مُمرَّرة كسلاسل نصية — تصل البيانات من الأنظمة الخارجية أو من الخطوات السابقة كسلسلة نصية بدلاً من أن تكون مصفوفة فعلية
- لا يمكن تحديد عناصر فردية — يمكنك تحديد المصفوفة كاملة فقط، وليس الحقول المحددة داخلها
يمكن حل كلا الأمرين باستخدام عقدة Code.
تحليل المصفوفات من السلاسل النصية
غالباً ما تُمرَّر المصفوفات بين خطوات سير العمل كسلاسل نصية أو JSON بدلاً من مصفوفات أصلية. يحدث هذا عندما:
- استقبال البيانات من واجهات برمجة التطبيقات الخارجية عبر HTTP Request
- معالجة حمولات خطافات الويب
- تمرير البيانات بين خطوات سير العمل
الحل: أضف هذا النمط في بداية إجراء Code الخاص بك:
export const main = async (params: {
users: any;
}): Promise<object> => {
const { users } = params;
// Handle input that may come as a string or an array
const usersFormatted = typeof users === "string" ? JSON.parse(users) : users;
// Now you can safely work with usersFormatted as an array
return {
users: usersFormatted.map((user) => ({
...user,
activityStatus: String(user.activityStatus).toUpperCase(),
})),
};
};
السطر الأساسي typeof users === "string" ? JSON.parse(users) : users يتحقق مما إذا كان الإدخال سلسلة نصية، ويُجري تحليله إذا لزم الأمر، أو يستخدمه مباشرة إذا كان مصفوفة بالفعل.
استخراج الحقول الفردية من المصفوفات
قد يُرجِع خطّاف ويب مصفوفةً مثل answers: [...]، ولكن في خطوات سير العمل اللاحقة يمكنك تحديد المصفوفة بأكملها فقط — وليس العناصر الفردية داخلها.
الحل: أضف عقدة Code لاستخراج حقول محددة وإرجاعها ككائن منظَّم:
export const main = async (params: {
answers: any;
}): Promise<object> => {
const { answers } = params;
// Handle input that may come as a string or an array
const answersFormatted = typeof answers === "string"
? JSON.parse(answers)
: answers;
// Extract specific fields from the array
const firstname = answersFormatted[0]?.text || "";
const name = answersFormatted[1]?.text || "";
return {
answer: {
firstname,
name
}
};
};
تعيد عقدة Code كائناً منظَّماً بدلاً من مصفوفة. في الخطوات اللاحقة، يمكنك الآن تحديد حقول فردية مثل answer.firstname وanswer.name من منتقي المتغيرات.
نعمل بنشاط على جعل التعامل مع المصفوفات أسهل في التحديثات المستقبلية.
انقر على أيقونة المربع في أعلى يمين محرر الكود لعرضه بملء الشاشة — فهذا مفيد لأن عرض المحرر الافتراضي محدود.