我试图更新成功更新的普通数组数据,但是我有一个疑问。我在put url中传递id并获取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:“ bourbon”},{id:2,product_name:“ hari”}]
答案 0 :(得分:1)
您需要克隆原始对象。只需使用let course = {...courses[i]} or let course = Object.assign({},courses[i]}
而不是let course = courses[i]
。
对象的行为与原始数据类型不同。 “ course”变量包含对原始数组中元素的引用。因此,更改它就是修改数组中的原始对象。