תחומים
    • הרשמה
    • התחברות
    • חיפוש
    • קטגוריות
    • פוסטים אחרונים
    • משתמשים
    • חיפוש
    חוקי הפורום

    הוספת אובייקט למערך אובייקטים ב-JS

    תכנות
    2
    2
    337
    טוען פוסטים נוספים
    • מהישן לחדש
    • מהחדש לישן
    • הכי הרבה הצבעות
    תגובה
    • הגיבו כנושא
    התחברו בכדי לפרסם תגובה
    נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
    • Y
      yyy נערך לאחרונה על ידי

      נניח שיש לי מערך אובייקטים, וכעת אני מנסה לייצר אובייקט חדש, ולהוסיף אותו למערך המקורי. ניסיתי שני דרכים ללא הצלחה.
      דרך א:

      <script>
            arr = [{
                "num": "1"
            }, {
                "num": "2"
            }];
            obj = '{  "num": "3"  }'
            arr.push(obj);
      
            function printArr() {
      
                for (i = 0; i < arr.length; i++) {
                    console.info("num = " + arr[i].num)
                }
            }
      
            printArr();
        </script>
      

      במקרה זה האובייקט שמנסים להוסיף נכנס כ-STRING ולא כאובייקט.

      דרך ב:

      <script>
             arr = [{
                 "num": "1"
             }, {
                 "num": "2"
             }];
             obj = arr[0];
             obj.num = 3;
             arr.push(obj);
      
             function printArr() {
      
                 for (i = 0; i < arr.length; i++) {
                     console.info("num = " + arr[i].num)
                 }
             }
      
             printArr();
         </script>
      

      במקרה זה האובייקט שנוסף הוא רק הפנייה לאובייקט שממנו נוצר.
      אז איך עושים את זה "נכון"?

      chv תגובה 1 תגובה אחרונה תגובה ציטוט 1
      • chv
        chv @yyy נערך לאחרונה על ידי

        @yyy הדוגמא הראשונה היא הנכונה, רק שאת האובייקט שניסת ליצור (שורה 7, obj) לא יצרת כמערך אובייקט אלא כסטרינג, כי עטפת אותו בגרשים.
        תמחק את הגרשים

              arr = [{
                  "num": "1"
              }, {
                  "num": "2"
              }];
              obj = {  "num": "3"  }
              arr.push(obj);
        

        ואגב שמות של אובייקטים (וגם המספרים, אם הם נועדו להיות מספרים ולא סטרינגים) לא צריכים להיות עם גרשיים, אפשר לכתוב פשוט obj = { num: 3 }

        בלוג | מייל

        תגובה 1 תגובה אחרונה תגובה ציטוט 9
        • הועבר מ תכנות ע"י  dovid dovid 
        • 1 / 1
        • פוסט ראשון
          פוסט אחרון
        בא תתחבר לדף היומי!