![](/img/trans.png)
[英]How to access a key of an object by its variable name in DOM using angular
[英]How to access an object property using a variable containing its key name
我认为这在JS中是不可能的,但是我认为在继续之前我会仔细检查。
我在数组对象上创建了一个简单的原型,其目的是通过键值对数组进行排序。
该功能正常工作,但是我想通过将一个密钥传入该功能使其更加可重用。 但是,当我传入一个值时,它是一个字符串,因此无法正确引用。 是否有人知道如何解决此问题,所以在下面的示例中,我可以按传入的key1而不是硬编码的key1进行排序。
我的代码是这个,这里有一个小提琴http://jsfiddle.net/9KLk8/1/
Array.prototype.keySort=function(key1)
{
this.sort(function(a,b) {return (a.height > b.height) ? 1 : ((b.height > a.height) ? -1 : 0);} );
}
var a1 = [
{ key: 1, height : 100 },
{ key: 2, height: 700 },
{ key: 3, height: 200 }
];
a1.keySort("height");
console.log(a1);
使用方括号语法:
Array.prototype.keySort=function(key1)
{
this.sort(function(a,b) {return (a[key1] > b[key1]) ? 1 : ((b[key1] > a[key1]) ? -1 : 0);} );
}
Jsfiddle: http : //jsfiddle.net/2hb4K/
是的,您可以执行此操作,因为使用JavaScript,您可以使用点分表示法和文字( a.height
),也可以使用带括号的表示法和字符串( a["height"]
)访问属性。 在后一种情况下,字符串不必是文字字符串,它可以是任何表达式的结果,包括变量引用。
因此a[key1]
将访问由key1
变量命名的属性。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.