-
@חייםיודלביץ אמר בשאלה | איזה משתנה מחזיר את שם השולח בגוגל סקריפט?:
אני פשוט לא מסתדר, נסיתי המון ... אני לא מכיר את JS אני מכיר טוב את ה VBA ופה לא הולך לי
בוא נעשה סדר...
- אם אתה מכיר את VBA, סימן שיש לך מושג כיצד מתנהג קוד. העקרון הבסיסי זהה גם כאן.
- אם השמות מוצגים בקונסול, סימן שהשליפה שלהם מבוצעת כראוי על ידי הקוד.
- אני מבין שאתה רוצה לעשות עם התוצאות משהו אחר, וכפי שכתבת:
אני לא מצליח לטעון אותו למשתנה הוא רק מציג לי אותו כ Log
בוא נראה, היכן בקוד שלי מבוצעת ההדפסה? בשורה 4:
Logger.log(parseEmailHeader(m).name)
יתכן והשורה הזו עמוסה מדי עבורך, זה סגנון של מתכנתים קצת יותר מנוסים. אם כן אני אנסה להרחיב יותר. (אם זו לא הבעיה, אתה רשאי להתעלם מבילבול המוח דלקמן... צרף את הקוד שלך ונראה מה הבעיה)
בוא נפרק את השורה הזו לגורמים. יש כאן בעצם שלושה שלבים:
-
קריאה ל
parseEmailHeader(m)
.
אני מעביר לפונקציהparseEmailHeader
את האובייקטm
שמכיל את ההודעה הנוכחית.
הפונקציה מחזירה אובייקט עם שני שדות (בשורה 12 היא יוצרת אותו, ובשורה 22 היא מחזירה אותו), שני השדות הם:
name
- שאמור להכיל את שם המשתמש, ו-email
שאמור להכיל את כתובת המייל שלו. -
אח"כ אני מבודד מתוך האובייקט המוחזר רק את הערך של
name
(שבו אני מעוניין) על ידי אופרטור הנקודה.
ולאחריו שם השדה, כך:name.
-
אני מדפיס את התוצאה המבוקשת על ידי קריאה ל:
()Logger.log
.
אילו הייתי רוצה לפשט את הקוד יותר, הייתי כותב כך:
// שלב 1: קבלת אובייקט המכיל את שם וכתובת השולח מתוך כותרת ההודעה const messageHeaderDetails = parseEmailHeader(m); // שלב 2: שליפת שם המשתמש מתוך האובייקט המוחזר const senderName = messageHeaderDetails.name; // שלב 3: הדפסת שם המשתמש ביומן Logger.log(senderName);
אם החזקת ראש איתי עד עכשיו, אני מקווה שאתה כבר מבין שאינך מחוייב דווקא להדפיס את שם המשתמש בשלב 3. כיון שהערך המבוקש נמצא במשתנה senderName, תוכל להחליף את שלב 3 ולעשות מה שבא לך עם שם המשתמש.
למשל, לאחסן אותו במערך:
myArray.push(senderName)
או בקיצור:
myArray.push(parseEmailHeader(m).name)
-
-
-
-