這個問題是很老,但因爲它是在谷歌上的結果對於查詢「的JavaScript字符串從獲取對象」,我想我會分享的技術,使用點符號長對象路徑。
考慮以下幾點:
var objPath = "bar.alpha";
var alphaVal = objPath.split('.')
.reduce(function (object, property) {
return object[property];
}, foo);
// alphaVal === "beta"
如果它是全球:
var foo = { 'bar': { 'alpha': 'beta' } };
我們可以從這樣的字符串得到 '阿爾法' 的值
window.foo = { 'bar': { 'alpha': 'beta' } };
只是傳遞window
作爲initialValue
對於reduce
:
var objPath = "foo.bar.alpha";
var alphaVal = objPath.split('.')
.reduce(function (object, property) {
return object[property];
}, window);
// alphaVal === "beta"
基本上我們可以使用reduce
通過傳入最初的對象作爲initialValue
來遍歷對象成員。
MDN article for Array.prototype.reduce
myobject是一個本地或全局變量嗎? – 2012-08-12 18:36:32
您將模型數據保存在變量中嗎?我對MVC沒有多少經驗,但通常你想在你的視圖或集合中保留對模型的引用...... – 2012-08-12 18:39:51