[英]i am trying to push an object to an array before adding a new property to that object , but it directly updates the array
我該如何解決這種行為,因為我只需要更新的 object 就可以將其顯示給用戶並且只保存原始的
作為響應發送的“文章”具有類別屬性,在我看來,它們不應該只是它上面的新初始化“數據”變量應該(不保存到文章數組)
import articles from "../models/article" // articles empty array
import categories from "../models/category" // categories empty array
export default {
create(req, res) {
const value = req.value // object
const category = req.category // object
category.forEach(obj => {
categories.push({ category: obj, articleId: value.id })
})
// console.log(categories)
const bro = articles.push(value)
console.log(articles)
if (bro) {
// const data = value
value.category = category
console.log(articles)
const data = value
res.status(201).json({
status: 201,
message: 'article created successfully',
articles
})
}
},}
javascript 中的對象(包括數組)僅僅是指針。 當您將value
推送到articles
數組時,您只是推送指向原始 object 的指針,因此當您修改原始 object 時,該修改適用於兩個地方。
我相信你想要做的是更換
// const data = value
value.category = category
console.log(articles)
const data = value
和
const data = Object.assign({}, value, { category })
這將創建一個完全獨立的 object,其中包含來自 value 的所有先前屬性,而且還添加了類別。
注意:ES6 解構允許您進一步簡化它,就像
const data = { ...value, category }
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.