这个问题是很老,但因为它是在谷歌上的结果对于查询“的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