דילוג לתוכן
  • דף הבית
  • קטגוריות
  • פוסטים אחרונים
  • משתמשים
  • חיפוש
  • חוקי הפורום
כיווץ
תחומים

תחומים - פורום חרדי מקצועי

💡 רוצה לזכור קריאת שמע בזמן? לחץ כאן!
  1. דף הבית
  2. תכנות
  3. שרשור ערכים בקוד JS

שרשור ערכים בקוד JS

מתוזמן נעוץ נעול הועבר תכנות
12 פוסטים 3 כותבים 1.0k צפיות
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • chagoldC מנותק
    chagoldC מנותק
    chagold
    כתב ב נערך לאחרונה על ידי chagold
    #1

    יש לי משתנה שמחזיק אובייקט, ואני רוצה להגדיר אותו לפי שרשור של ערך משתנה אחר + סטרינג.

      aaa = [{"0":"as"},{"1":"ASS"}];
      
      bbb = aaa + '.0';
    

    כשbbb אמור להחזיק ערך 'as'

    איך עושים את זה?
    תודה.

    תגובה 1 תגובה אחרונה
    0
    • dovidD מנותק
      dovidD מנותק
      dovid ניהול
      כתב ב נערך לאחרונה על ידי
      #2
      var index = "0";
      var bbb = aaa[index];
      

      זה עובד הן עבור מערכים והן עבור אובייקטים.

      מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

      בכל נושא אפשר ליצור קשר dovid@tchumim.com

      תגובה 1 תגובה אחרונה
      3
      • chagoldC מנותק
        chagoldC מנותק
        chagold
        כתב ב נערך לאחרונה על ידי
        #3

        וכשהאינדקס הוא דינמי ויכול לכלול כמה איברים עד שמגיעים לתוצאה הרצויה, כזה:

         var index = "chatuna.rikudim.rikudimrishonim";
        

        באיזה כיוון אני אמור לגשת לצורך הצמדת כל האיברים?

          ["chatuna"]["rikudim"]["rikudimrishonim"]
        

        כדי שאוכל אח"כ להצמיד את האינדקס לשליפת המערך/ הנתון הרצוי?

         var bbb = aaa[index];
        

        תודה.

        תגובה 1 תגובה אחרונה
        0
        • dovidD מנותק
          dovidD מנותק
          dovid ניהול
          כתב ב נערך לאחרונה על ידי dovid
          #4

          @chagold אמר בשרשור ערכים בקוד JS:

          chatuna.rikudim.rikudimrishonim"

          
          function getNestedObj(obj, arr){
            var last = obj;
          
            for(var i = 0; i < arr.length; i++)
              last = last[arr[i]];
          
            return last;
          }
          
          
          

          תשתמש עם זה ככה:

          var obj = {chatuna: { rikudim: { rikudimrishonim: "dagim" } } };
          var path = "chatuna.rikudim.rikudimrishonim";
          
          getNestedObj(obj, path.split('.'))
          
          

          מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

          בכל נושא אפשר ליצור קשר dovid@tchumim.com

          zvizviZ chagoldC 2 תגובות תגובה אחרונה
          2
          • zvizviZ מנותק
            zvizviZ מנותק
            zvizvi
            השיב לdovid ב נערך לאחרונה על ידי zvizvi
            #5

            @dovid אמר בשרשור ערכים בקוד JS:

            @chagold אמר בשרשור ערכים בקוד JS:

            chatuna.rikudim.rikudimrishonim"

            תשתמש עם זה ככה:

            var obj = {chatuna: { rikudim: { rikudimrishonim: "dagim" } } };
            var path = "chatuna.rikudim.rikudimrishonim";
            
            getNestedObj(obj, path.split('.'))
            
            

            או בקצרה עם ספריית lodash.

            var obj = {chatuna: { rikudim: { rikudimrishonim: "dagim" } } };
            
            _.get(obj, 'chatuna.rikudim.rikudimrishonim')
            
            
            

            https://zvizvi.xyz

            תגובה 1 תגובה אחרונה
            1
            • chagoldC מנותק
              chagoldC מנותק
              chagold
              השיב לdovid ב נערך לאחרונה על ידי
              #6

              הדוגמא עובדת, אבל במימוש לא הצלחתי,
              https://jsfiddle.net/dhpq4fok/5/

              תגובה 1 תגובה אחרונה
              0
              • dovidD מנותק
                dovidD מנותק
                dovid ניהול
                כתב ב נערך לאחרונה על ידי
                #7

                תנסה להבין את הבעייתיות של שתי השורות האלה:

                var path = "appaa.$data.foo" + ".chatuna.rikudim.rikudimrishonim";
                alert( getNestedObj(appaa.$data.foo, path.split('.') ));
                

                מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

                בכל נושא אפשר ליצור קשר dovid@tchumim.com

                תגובה 1 תגובה אחרונה
                0
                • chagoldC מנותק
                  chagoldC מנותק
                  chagold
                  כתב ב נערך לאחרונה על ידי
                  #8

                  https://jsfiddle.net/dhpq4fok/10/
                  הבעיה שהוא לא מזהה את המשתנה $data. למה?

                  תגובה 1 תגובה אחרונה
                  0
                  • dovidD מנותק
                    dovidD מנותק
                    dovid ניהול
                    כתב ב נערך לאחרונה על ידי
                    #9

                    לא. הבעיה שאתה מעביר נתיב שלא קיים.
                    בתור אובייקט נתת את appaa.$data.foo שזה אומר שורה תחתונה תוכנו של foo.
                    בתור נתיב נתת את "appaa.$data.foo.chatuna.rikudim.rikudimrishonim"
                    הפוקנציה מנתחת את זה כאילו כתוב ככה:

                    appaa.$data.foo["appaa"]["$data"]["foo"]["chatuna"]["rikudim"]["rikudimrishonim"]
                    

                    הבעיה שappaa.$data.foo אין אלמנט בשם appaa.

                    אילו היית מעביר רק את הנתיב הנדרש, למשל: "chatuna.rikudim.rikudimrishonim", זה היה עובד יופי.
                    לחילופין יכול להעביר במקום את appaa.$data.foo, את appaa לבד, ובתור נתיב את הכל (מלבד שם האב - שהרי אין בappaa אלמנט בשם appaa) ככה:

                    var path = "$data.foo.chatuna.rikudim.rikudimrishonim";
                    

                    מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

                    בכל נושא אפשר ליצור קשר dovid@tchumim.com

                    תגובה 1 תגובה אחרונה
                    1
                    • chagoldC מנותק
                      chagoldC מנותק
                      chagold
                      כתב ב נערך לאחרונה על ידי
                      #10

                      @dovid אמר בשרשור ערכים בקוד JS:

                      chatuna.rikudim.rikudimrishonim

                      עדיין לא עובד
                      https://jsfiddle.net/dhpq4fok/12/

                      dovidD תגובה 1 תגובה אחרונה
                      0
                      • dovidD מנותק
                        dovidD מנותק
                        dovid ניהול
                        השיב לchagold ב נערך לאחרונה על ידי dovid
                        #11

                        @chagold אמר בשרשור ערכים בקוד JS:

                        @dovid אמר בשרשור ערכים בקוד JS:

                        chatuna.rikudim.rikudimrishonim

                        עדיין לא עובד
                        https://jsfiddle.net/dhpq4fok/12/

                        נכון כי לfoo אין אלמנט בשם chatuna. אלא הוא מערך שמכיל איבר בודד שבתוכו יש אלמנט בשם chatuna.
                        אתה יכול להעביר לו appaa.$data.foo[0] או להוסיף לנתיב את האפס ככה:

                         "0.chatuna.rikudim.rikudimrishonim.name"
                        

                        מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

                        בכל נושא אפשר ליצור קשר dovid@tchumim.com

                        תגובה 1 תגובה אחרונה
                        1
                        • chagoldC מנותק
                          chagoldC מנותק
                          chagold
                          כתב ב נערך לאחרונה על ידי
                          #12

                          @dovid תודה רבה.

                          תגובה 1 תגובה אחרונה
                          1

                          בא תתחבר לדף היומי!
                          • התחברות

                          • אין לך חשבון עדיין? הרשמה

                          • התחברו או הירשמו כדי לחפש.
                          • פוסט ראשון
                            פוסט אחרון
                          0
                          • דף הבית
                          • קטגוריות
                          • פוסטים אחרונים
                          • משתמשים
                          • חיפוש
                          • חוקי הפורום