-
נניח שיש לי מערך אובייקטים, וכעת אני מנסה לייצר אובייקט חדש, ולהוסיף אותו למערך המקורי. ניסיתי שני דרכים ללא הצלחה.
דרך א:<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>
במקרה זה האובייקט שנוסף הוא רק הפנייה לאובייקט שממנו נוצר.
אז איך עושים את זה "נכון"? -
@yyy הדוגמא הראשונה היא הנכונה, רק שאת האובייקט שניסת ליצור (שורה 7, obj) לא יצרת כמערך אובייקט אלא כסטרינג, כי עטפת אותו בגרשים.
תמחק את הגרשיםarr = [{ "num": "1" }, { "num": "2" }]; obj = { "num": "3" } arr.push(obj);
ואגב שמות של אובייקטים (וגם המספרים, אם הם נועדו להיות מספרים ולא סטרינגים) לא צריכים להיות עם גרשיים, אפשר לכתוב פשוט
obj = { num: 3 }
-