js, פונקציה להעתקת אוביייקט כחדש
-
במערך יש את הפונקציה
arr.slice(0)
שנותנת את המערך כחדש (ושינויים בחדש לא משתקפים במערך המקורי).
יש משהו תואם עבור העתקת אובייקט?
תודה. -
במערך יש את הפונקציה
arr.slice(0)
שנותנת את המערך כחדש (ושינויים בחדש לא משתקפים במערך המקורי).
יש משהו תואם עבור העתקת אובייקט?
תודה. -
@מנצפך חשוב לציין שיש בעיה גדולה בגישה הזאת:
זה יכול לגרום לאיבוד מידע כי JSON מתעלמת לחלוטין מערכים מסויימים (בין השאר: מערכיfunction
ו-undefined
ועוד), הם פשוט לא יופיעו בהעתק...ראה את הפוסט הזה.
[לכן כנראה לעולם לא מומלץ להשתמש עם זה כי לך תדע איך ייראה האובייקט בעתיד].
לא להאמין אבל עושים את זה...
אולי לזה התכוונת?
-
@chagold
ב-JS מודרני נהוג לעשות את זה ככה:newObj = {...oldObj}
זה עובד במקרים פשוטים. קיימות כמה כוכביות*** ואזהרות בנוגע לזה. יש עוד דרכים. במקרים לא פשוטים הייתי הולך על lodash.cloneDeep
@yossiz ראוי לזכור שזה תקף רק לאובייקט שטוח חד מימדי, באובייקט דו מימדי כל המימדים העמוקים יותר לא יועתקו, לדוגמא
const obj = { id:1, innerData: { id:1 } }
innerData ישאר מצביע לאובייקט המקורי