שאלה באובייקטים ב JS
-
יש לי אובייקט X
אני רוצה להציב בתוך הבן שלו, Y את הנכד - Z.
אם אני אעשה כך:x.y.z={}תיווצר בעיה.
איני יודע אם Y הוא undefined. ואם כן אני צריך קודם לעשותY={}. ואז אני אדרוס את הבנים של Y אם ישנם.
הפתרון הנאיבי הוא לעשות בדיקה.
אם x.y הוא undefined, אז x.y = {}.
השאלה היא אם יש משהו קצר יותר. כי אם אני רוצה לגשת לבן של הבן של הבן אני כבר מסתבך. -
הדרך המקובלת היא כמו שכתבתי לך בעבר:
http://tchumim.com/topic/2989/js-גישה-לילדים-של-אובייקט/3
רק שכנראה אתה שואל איך משתמשים בזה להשמה, אז ככה:x.y = x.y || {}; x.y.z = {};בטריקיות זה יכול להיכנס בשורה אחת:
(x.y = x.y || {}).z = {};זה מרגיז אבל אין מה לעשות. בדרך כלל בתכנון נכון לא מגיעים למצב הזה בתדירות גבוהה.
ואני מסכים עם דברי @zvizvi שם שהכי טוב להשתמש בספריה כמו שהוא הדגים שמה. -
הדרך המקובלת היא כמו שכתבתי לך בעבר:
http://tchumim.com/topic/2989/js-גישה-לילדים-של-אובייקט/3
רק שכנראה אתה שואל איך משתמשים בזה להשמה, אז ככה:x.y = x.y || {}; x.y.z = {};בטריקיות זה יכול להיכנס בשורה אחת:
(x.y = x.y || {}).z = {};זה מרגיז אבל אין מה לעשות. בדרך כלל בתכנון נכון לא מגיעים למצב הזה בתדירות גבוהה.
ואני מסכים עם דברי @zvizvi שם שהכי טוב להשתמש בספריה כמו שהוא הדגים שמה.@dovid אמר בשאלה באובייקטים ב JS:
הדרך המקובלת היא כמו שכתבתי לך בעבר:
http://tchumim.com/topic/2989/js-גישה-לילדים-של-אובייקט/3
רק שכנראה אתה שואל איך משתמשים בזה להשמה, אז ככה:x.y = x.y || {}; x.y.z = {};בטריקיות זה יכול להיכנס בשורה אחת:
(x.y = x.y || {}).z = {};זה מרגיז אבל אין מה לעשות. בדרך כלל בתכנון נכון לא מגיעים למצב הזה בתדירות גבוהה.
ואני מסכים עם דברי @zvizvi שם שהכי טוב להשתמש בספריה כמו שהוא הדגים שמה.בהמשך לשם, בLodash עושים את זה ככה:
_.set( x, 'y.z', {} );
שלום! נראה שהשיחה הזו מעניינת אותך, אבל עדיין אין לך חשבון.
נמאס לכם לגלול בין אותם הפוסטים בכל ביקור? כשנרשמים לחשבון, תמיד תחזרו בדיוק למקום שבו הייתם קודם, ותוכלו לבחור לקבל התראות על תגובות חדשות (בין אם במייל, ובין אם בהתראת פוש). תוכלו גם לשמור סימניות ולפרגן ב-upvote לפוסטים כדי להביע הערכה לחברי קהילה אחרים.
בעזרת התרומה שלך, הפוסט הזה יכול להיות אפילו טוב יותר 💗
הרשמה התחברות