我认为这在 JS 中是不可能的,但我想在继续之前我应该仔细检查。
我在数组对象上创建了一个简单的原型(prototype),其目的是按键值对数组进行排序。
该函数工作正常,但我想通过将 key 传递到函数中来使其更可重用。但是,当我传入一个值时,它是一个字符串,因此无法正确引用。有谁知道如何解决这个问题,所以在下面的示例中,我可以按传入的 key1 而不是硬编码的 key1 进行排序。
我的代码是这样的,这里有一个 fiddle 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 - 如何使用包含其键名的变量来访问对象属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19730376/