我有这段代码
var myObject = {
prop1: [
'this is prop1:',
['answer1', 'prop2'],
['answer2', 'prop3']
],
prop2: [
'this is prop2:',
['answer1', 'prop1'],
['answer2', 'prop3'],
],
prop3: [
'this is prop3:',
['answer1', 'prop1'],
['answer2', 'prop2'],
]
};
现在让我说我做这个变量
var myVar = myObject.prop1;
所以假设我想要console.log(myVar);
它会给我数组prop1及其所有值。
我想改变变量myVar并将其更改为:
myVar = myObject.prop2;
我想使用答案旁边附带的字符串来完成此操作 所以问题1的answer1基本上将prop2作为字符串。
我想获取该字符串并将其转换为属性prop2来调用它。
我试过了:
var pullProp = myObject.prop1[1][1]; // which is the string prop2
myVar = myObject.pullProp;
console.log(myVar); // i get undefined
答案 0 :(得分:1)
您可以使用
的内容myObject.prop1[1][1] // 'prop2'
是
的关键myVar = myObject[myObject.prop1[1][1]];
您可以查看property accessors
属性访问器通过使用点表示法或括号表示法提供对对象属性的访问。
<强>语法强>
object.property object["property"]
var myObject = {
prop1: ['this is prop1:', ['answer1', 'prop2'], ['answer2', 'prop3']],
prop2: ['this is prop2:', ['answer1', 'prop1'], ['answer2', 'prop3']],
prop3: ['this is prop3:', ['answer1', 'prop1'], ['answer2', 'prop2']]
},
myVar = myObject.prop1;
console.log(myVar);
myVar = myObject[myObject.prop1[1][1]];
console.log(myVar);
.as-console-wrapper { max-height: 100% !important; top: 0; }
答案 1 :(得分:0)
myObject上没有定义名为forall k. (k -> k -> *) -> Constraint
的属性。 pullProp
是在与myObject相同的范围级别定义的变量。
我认为你想要实现的目标是:
pullProp