הוספת עותק של מערך האובייקטים בכל אובייקט לפני שמירה.
-
אני רוצה לשמור תיעוד של כל האובייקטים, בכל אובייקט. אז הוספתי אחרי יצירת המערך forEach זה נראה נבנה טוב, רק שמשום מה, נכנס בשדה הסיכום, כאילו שוב סיכום ואז יוצר כנראה איזה שגיאה ולא שומר.
כותב שם בתוך העותק {למרות שלכאורה לא היה אמור להיות השדה הזה, כיון שאני מעתיק אותו לפני השינוי.}
sicum: "[Circular]"let taskss = [] await $w("#repeater8").forEachItem(($item) => { let insert2 = { "data": $item('#datePicker6').value, "time": $item('#timePicker8').value, "tasks": $item('#input4').value, "project": $w('#input6').value, "customers": $w('#input5').value, } taskss.push(insert2) }) const tt = [...taskss] await taskss.forEach((item) => { item.total = tt.length item.sicum = tt }); console.log(taskss); await wixData.bulkInsert("Tasks", taskss)
תודה רבה.
-
@אבי-203 אמר בהוספת עותק של מערך האובייקטים בכל אובייקט לפני שמירה.:
כותב שם בתוך העותק {למרות שלכאורה לא היה אמור להיות השדה הזה, כיון שאני מעתיק אותו לפני השינוי.}
JS אמנם יוצר מערך חדש, אבל שמכיל בדיוק את אותם האוביקטים המקוריים.
מה שגורם להפניה מעגליתCircular
של אוביקט אל עצמו, וכמובן זה לא משהו שניתן לשמור בDB (לפחות לא as-is).
אדגים:> item_1 = {id: 1} > item_2 = {id: 2} > items = [item_1, item_2]; [ { id: 1 }, { id: 2 } ] > not_new_items = [...items]; > item_1.is_old = true > not_new_items [ { id: 1, is_old: true }, { id: 2 } ]
מה שנצרך זה בעצם לבצע deepcopy "העתקה עמוקה" למשל באמצעות JSON. (משער שיש דרכים יותר הגיוניות, לא יודע JS מספיק..)
const tt = JSON.parse(JSON.stringify(taskss)); await taskss.forEach((ite => { item.total = tt.length item.sicum = tt });