如何在函数参数javascript中指定对象位置
我希望能够使用一个函数来更新一个或多个对象,该函数指定要在对象中更新的对象的位置。我不确定它的正确语法是什么。我下面的尝试实际上在原始对象中创建了一个新参数,因为我想更新用户对象的现有字段如何在函数参数javascript中指定对象位置,javascript,Javascript,我希望能够使用一个函数来更新一个或多个对象,该函数指定要在对象中更新的对象的位置。我不确定它的正确语法是什么。我下面的尝试实际上在原始对象中创建了一个新参数,因为我想更新用户对象的现有字段 var User = { local: { location: { city: "", state: "" } } } var Profile = { location: { city: "", state: "" } }
var User = {
local: {
location: {
city: "",
state: ""
}
}
}
var Profile = {
location: {
city: "",
state: ""
}
}
function update(model, parameter, updatedLocation) {
return model[updatedLocation] = {
city: updatedLocation.city,
state: updatedLocation.state,
};
}
update(User, ["local"]["location"], { city: "ny", state: "ny"});
update(Profile, ["location"], { city: "ny", state: "ny"});
console.log(User);
console.log(Profile);
与此处的另一个答案类似,但不需要对位置结构进行明确编码: 函数updatemodel,参数,newVal{ 模型[参数]=newVal; } updateUser[local],位置,{城市:纽约,州:纽约}; 更新配置文件,位置,{城市:纽约,州:纽约}; 或者,如果只更新位置,则可以简化功能: 函数updateLocationmodel,newVal{ model.location=newVal; }
你可以试试这个。基本上,这是一种通用的方法,可以进入对象的任何级别并更新属性。代码注释中的详细信息 变量用户={ 本地:{ 地点:{ 城市:, 声明: } } } 变量配置文件={ 地点:{ 城市:, 声明: } } 函数updateobj,path,updatedProps{ var objToUpdate=obj; //沿着路径迭代以找到所需的对象 对于变量i=0;i