【发布时间】:2023-03-18 10:54:01
【问题描述】:
我有一个对象数组,我需要更新数组中特定对象的一些属性,然后对其运行findAndUpdateById 调用。我正在尝试这样做,但它没有更新并给我一个未定义名称属性的错误。我想我没有遵循正确的程序来更新 javascript 的对象,因此我需要帮助。
这是我的数组
let arr = [
{
"_id": "1234",
"customer": {
"firstName": "John",
"lastName": "Doe",
"email": "johndoe@gmail.com",
"address": "123 Caroline Street"
}
}
]
现在我正在接收这样的参数,我需要在我的对象中更新
let ctx = {
"params": {
"changeObject": {
"firstName": "Ali",
"email": "ali@gmail.com"
}
}
}
【问题讨论】:
-
您需要引用正确的客户...例如
_id。 -
“我正在尝试这样做,但它没有更新,并给我一个未定义名称属性的错误。” 请向我们展示该代码,然后复制并粘贴 exact 你得到的错误。对于我们看不到的代码和仅含糊描述的错误,很难为您提供帮助。 :-)
-
一旦确定要更新的对象是哪个对象,就可以使用 Object.assign:
Object.assign(oldObj, newProperties) -
我通过对_id 进行
.find调用来获取对象数组,收到的数组中只有一个客户对象 -
我的代码给了我一个 TypeError: Cannot set property 'firstName' of undefined
标签: javascript arrays mongoose