我想使用变量的值来访问一个对象。
假设我有一个名为myobject的对象。
我想用这个名称填充一个变量,并使用该变量访问该对象。
示例:
var objname = 'myobject';
{objname}.value = 'value';
var objname = 'myobject';
{objname}.value = 'value';
const iconObj = {
ZondIcons,
MaterialIcons,
}
const objValue = iconObj[iconLib][propertyName]
您可以通过以下方式设置对象的属性:
var obj = {};
obj.whateverVarName = 'yourVal';
console.log(obj);
我在回答中遇到的一个挑战是它假定对象只有一个层级。例如,
const testObj = { testKey: 'testValue' }
const refString = 'testKey';
const refObj = testObj[refString];
运行良好,但是
const testObj = { testKey:
{ level2Key: 'level2Value' }
}
const refString = 'testKey.level2Key';
const refObj = testObj[refString];
不起作用。
我最终做的是构建一个访问多级对象的函数:
objVar(str) {
let obj = this;
const parts = str.split('.');
for (let p of parts) {
obj = obj[p];
}
return obj;
}
const testObj = { testKey:
{ level2Key: 'level2Value' }
}
const refString = 'testObj.testKey.level2Key';
const refObj = objVar[refString];
在使用window[objname]时,请确保objname是全局变量。 否则,有时会工作,有时会失败。 window[objname].value。
var micro=[{'test':'hello'}];
var device = 'test';
console.log(micro[device]);