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

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

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

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

מתוזמן נעוץ נעול הועבר תכנות
12 פוסטים 3 כותבים 1.3k צפיות 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

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

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

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

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


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

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

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