Javascript Object.assign找不到声明的变量
我觉得我的问题很容易解决,但我看不出来。我有一件简单的事情要做,从另一个函数中获取Javascript Object.assign找不到声明的变量,javascript,object,Javascript,Object,我觉得我的问题很容易解决,但我看不出来。我有一件简单的事情要做,从另一个函数中获取myObject,并将其存储在我的存储对象中。为此任务,我创建了storageHandler函数。一切正常,但是Object.assign没有到达我先前在此函数中声明的'ID'。这很奇怪,因为我不知道如何告诉我的函数'ID'是变量,而不是字符串。我只希望它是{1212313:{…},但它给了我{ID:{…} 有人知道怎么修吗 let storage = {} const myObject = {
myObject
,并将其存储在我的存储对象中。为此任务,我创建了storageHandler
函数。一切正常,但是Object.assign
没有到达我先前在此函数中声明的'ID'
。这很奇怪,因为我不知道如何告诉我的函数'ID'
是变量,而不是字符串。我只希望它是{1212313:{…}
,但它给了我{ID:{…}
有人知道怎么修吗
let storage = {}
const myObject = {
ID: '1223424525221',
name: 'Thomas',
mail: 'example@example.com'
}
storageHandler = data => {
const {ID} = data;
Object.assign(storage, {ID: data})
console.log(storage)
}
storageHandler(myObject)
您正在使用字符串作为属性名称。使用诸如
[ID]
之类的计算属性名,而不是ID
。Computed属性允许将表达式计算为对象的属性名称
let存储={};
常量myObject={
ID:'1223424525221',
姓名:'托马斯',
邮件:'example@example.com',
};
storageHandler=(数据)=>{
const{ID}=数据;
赋值(存储,{[ID]:data});
控制台日志(存储);
};
storageHandler(myObject)
您应该使用ID
的值作为对象的键,使用[]
Object.assign(存储,{[ID]:data})
这是因为在javascript中
a = { b: 1 };
与
a = { "b": 1 };
您应该将Object.assign()更改为以下内容
storage[ID] = data;
如果要设置单个属性,为什么不只设置
存储[ID]=data
?看来你把事情搞得太复杂了。@Taplar是的,我只是不知道这种方式,谢谢你告诉我。还有一份