【发布时间】:2017-08-09 08:50:45
【问题描述】:
如何使用字符串数组(属性名称)获取对象属性? (数组的最后一个元素是对象的内部属性)
请看下面的代码:
方便的方法:
let myObject = {
"property": {
"subproperty": {
"targetproperty": "Hi, We done it!"
}
}
};
let myString = "property:subproperty:targetproperty";
let parts = myString.split( ":" );
console.log( myObject[ parts[ 0 ] ][ parts[ 1 ] ][ parts[ 2 ] ] ); // Output: "Hi, We done it!"
评估方式:
let myObject = {
"property": {
"subproperty": {
"targetproperty": "Hi, We done it!"
}
}
};
let myString = "property:subproperty:targetproperty";
let parts = myString.split( ":" );
let code = "myObject";
for ( let i = 0; i < parts.length; i++ ) {
code += "['" + parts[ i ] + "']";
}
code += ";";
console.log( code );
console.log( eval( code ) ); // Output: "Hi, We done it!"
评估是邪恶的。所以我需要一种更清洁的方法来做到这一点。
如果没有 eval 和方便的工作,我该怎么做?
【问题讨论】:
标签: javascript arrays string object