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

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

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

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

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