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

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

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

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

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