Javascript 如何使用包含其键名的变量访问对象属性
我认为这在JS中是不可能的,但我想在继续之前我会仔细检查一下 我在数组对象上创建了一个简单的原型,它的目的是按键值对数组进行排序 该函数工作正常,但我希望通过向函数中传递一个键,使其更易于重用。但是,当我传入一个值时,它是一个字符串,因此不能正确引用。是否有人知道如何解决这个问题,所以在我下面的示例中,我可以按传入的键1而不是硬编码的键1进行排序 我的密码是这个,一把小提琴在上面Javascript 如何使用包含其键名的变量访问对象属性,javascript,arrays,variables,prototype,Javascript,Arrays,Variables,Prototype,我认为这在JS中是不可能的,但我想在继续之前我会仔细检查一下 我在数组对象上创建了一个简单的原型,它的目的是按键值对数组进行排序 该函数工作正常,但我希望通过向函数中传递一个键,使其更易于重用。但是,当我传入一个值时,它是一个字符串,因此不能正确引用。是否有人知道如何解决这个问题,所以在我下面的示例中,我可以按传入的键1而不是硬编码的键1进行排序 我的密码是这个,一把小提琴在上面 使用括号语法: Array.prototype.keySort=function(key1) { this.
使用括号语法:
Array.prototype.keySort=function(key1)
{
this.sort(function(a,b) {return (a[key1] > b[key1]) ? 1 : ((b[key1] > a[key1]) ? -1 : 0);} );
}
jsiddle:使用括号语法:
Array.prototype.keySort=function(key1)
{
this.sort(function(a,b) {return (a[key1] > b[key1]) ? 1 : ((b[key1] > a[key1]) ? -1 : 0);} );
}
jsiddle:是的,您可以这样做,因为使用JavaScript,您可以使用点符号和文字(
a.height
)或括号符号和字符串(a[“height”]
)访问属性。在后一种情况下,字符串不必是文本字符串,它可以是任何表达式的结果,包括变量引用
因此,
a[key1]
将访问由key1
变量命名的属性。是的,您可以这样做,因为使用JavaScript,您可以使用点符号和文字(a.height
)或括号符号和字符串(a[“height”]
)访问属性。在后一种情况下,字符串不必是文本字符串,它可以是任何表达式的结果,包括变量引用
因此,
a[key1]
将访问由key1
变量命名的属性。您的标题与您的问题无关,您的问题是关于如何使用变量键名访问对象属性。您的标题与您的问题无关,这是关于如何使用可变键名访问对象属性的。当然,这是我大脑不活动的一个星期五,非常感谢:)当然,这是我大脑不活动的一个星期五,非常感谢:)