JS - איך הופכים טקסט לשורת קוד
-
@dovid אמר בJS - איך הופכים טקסט לשורת קוד:
לא הבנתי. לקלישות ההבנה שלי אובייקט יכול לעזור לך:
var dic = {}; dic['foo'] = 'abc'; console.log(dic['foo']); // abc
אני צריך שהוא יתן לי תוצאה '123', זאת אומרת שהוא יקרא אותו כמשתנה = יחזיר לי את הערך שהוא מכיל באם מחרוזת זו תופיע בקוד כמשתנה.
-
התבלבלתי. חשבתי שהדוגמא שהוא הביא דומה למקרה שלי וטעיתי.
יתרה מכך, אני שם לב שלא התנסחתי נכון מההתחלה, עמכם הסליחה.במקרה ש@WWW ואתה הבאתם - האובייקט בתוך האובייקט.
במקרה שלי, הבעיה היא להפוך סטרינג מת לכך שיקרא אותו כאילו שהוא משתנה.
לדוגמא אם'abc' = '123'
אז אני צריך צורה שכשאני יכתוב 'a'+'bc' הוא יקרא אותו כ abc וממילא יתן לי את הערך '123'.תודה רבה!
-
@chagold אמר בJS - איך הופכים טקסט לשורת קוד:
במקרה ש@WWW ואתה הבאתם - האובייקט בתוך האובייקט.
לא מדוייק, תבדוק שוב מה שכתב www.
ועל כל פנים עדיין שנינו כתבנו אופציה רלוונטית, למשל בדרך שלי:console.log(dic['a'+'bc']);
אם עדיין לא עוזר לדעתך, במקום להסתבך בהסברים בא תספר מה הבעיה שבפניך.
-
עריכה:
https://jsfiddle.net/4pgtq0xj/2/כאשר צריך את הערך 'bbb'.
ומדובר בסיטואציה שהצורה היחידה שלי לגשת לתוכן המפתח 'aaa' הוא ע"י שרשור סטרינגים. -
@מנצפך אמר בJS - איך הופכים טקסט לשורת קוד:
@chagold אתה צריך להסביר את הצורך שלך.
כך יהיה יותר ברור.אני מנסה לגשת ברמת הבעיה ולא ברמת הפתרון שניסיתי למצוא.
-
יש אובייקט json שמתקבל מהשרת, המייצג עץ תיקיות.
-
קומפוננט התצוגה בקליינט מצביע על רמה מסויימת בעץ, וכך אפשר להתוודע לתוכן התיקיה.
-
שינוי הרמה המוצגת מתבצע ע"י משתנה JS המשורשר בתוך הקוד של הקומפוננט - לדוגמא בשם phth_folder - ששינוי בו משנה למעשה את הקומפוננט (הפריימוורק - VUE).
v-for="item in `+this.phth_folder +`"
-
הערכים שיכולים להיכנס ל'phth_folder' - נמצאים בכל 'תיקיה' שבמערך, תחת האובייקטים 'path_parent_for_exp', 'path_for_exp', וכן למעבר לתיקיה שברמה נמוכה יותר בעץ אפשר לשרשר סתם סטרינג מתאים עם שם התיקיה.
וכאשר הסטרינג (לדוגמא - שבשדה path_parent_for_exp) יכנס ל- phth_folder, התצוגה תשתנה לתצוגה של התקיה הרלוונטית.
וכך כשנמצאים בתיקיית השורש הרי הערך שם הוא roottree.Objects , ואילו כאשר התצוגה היא של תיקיית barmithva אז הערך שם הוא roottree.Objects.barmithva.Objects. -
הנושא שלשמו נתכנסנו הוא ככה:
אני רוצה שאוכל לעלות רמה בכל תיקיה שאני נמצא בה, לתיקיה שמעליה. והשרשור הישן נועד למצוא פתרון טכני באמצעות שימוש בסטרינגים של הנתיב ואכמ"ל.
מה שניסיתי לעשות היה לקחת את הנתיב הקיים, לדוגמא roottree.Objects.barmithva.Objects, לעבד אותו עם
.slice(0, -8)+'.path_parent_for_exp'
דהיינו roottree.Objects.barmithva.path_parent_for_exp
ואם הייתי מצליח לקרוא אותו כמשתנה, אז הייתי מקבל את הערך שנמצא שם דהיינו roottree.Objects ואותו להכניס למשתנה phth_folder.תודה רבה על הקריאה הארוכה....
-