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

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

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

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

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