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

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

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

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

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


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

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

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