我尝试更新正常的数组数据,它已成功更新。但我有疑问。我将 id 传入 put url 并获取 id 来比较数组。它的 id 在那里,它获取数据并存储另一个变量,然后该变量用于改变值。它会自动改变原始数组中的值。任何人都可以解释它是如何可能的
app.js
const courses = [{id:1,product_name:"bourbon"},{id:2,product_name:"bourbon"}]
router.put('/:id',(req,res) =>
{
console.log("hello")
console.log(req.params.id)
for(let i=0;i<courses.length;i++)
{
if(courses[i].id === parseInt(req.params.id))
{
let course = courses[i]
course.name = "hari"
console.log(courses)
}
}
})
我的放置网址
本地主机:3000/woc/1
我得到了输出
[{id:1,product_name:"波本威士忌"},{id:2,product_name:"hari"}]
最佳答案
您需要克隆原始对象。只需使用 let course = {...courses[i]} 或 let course = Object.assign({},courses[i]}
而不是 let course = course[i]
。
对象的行为与原始数据类型不同。 'course' 变量包含对原始数组中元素的引用。所以改变它就是修改数组中的原始对象。
关于node.js - 如何使用mongodb更新普通数组中的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56646413/