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

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

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

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

מתוזמן נעוץ נעול הועבר תכנות
12 פוסטים 3 כותבים 1.3k צפיות 1 עוקבים
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
תגובה
  • תגובה כנושא
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • 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
        • dovidD dovid

          @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('.'))
          
          
          zvizviZ
          zvizviZ
          zvizvi
          כתב ב נערך לאחרונה על ידי 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
          • dovidD dovid

            @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('.'))
            
            
            chagoldC
            chagoldC
            chagold
            כתב ב נערך לאחרונה על ידי
            #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
                    • chagoldC chagold

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

                      chatuna.rikudim.rikudimrishonim

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

                      dovidD
                      dovidD
                      dovid
                      ניהול
                      כתב ב נערך לאחרונה על ידי 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

                        שלום! נראה שהשיחה הזו מעניינת אותך, אבל עדיין אין לך חשבון.

                        נמאס לכם לגלול בין אותם הפוסטים בכל ביקור? כשנרשמים לחשבון, תמיד תחזרו בדיוק למקום שבו הייתם קודם, ותוכלו לבחור לקבל התראות על תגובות חדשות (בין אם במייל, ובין אם בהתראת פוש). תוכלו גם לשמור סימניות ולפרגן ב-upvote לפוסטים כדי להביע הערכה לחברי קהילה אחרים.

                        בעזרת התרומה שלך, הפוסט הזה יכול להיות אפילו טוב יותר 💗

                        הרשמה התחברות
                        תגובה
                        • תגובה כנושא
                        התחברו כדי לפרסם תגובה
                        • מהישן לחדש
                        • מהחדש לישן
                        • הכי הרבה הצבעות


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

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

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