javascript - 如何使用包含其键名的变量来访问对象属性

标签 javascript arrays variables prototype

我认为这在 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/

相关文章:

javascript - 将页面上的术语链接到纯 JavaScript 中的维基百科文章

javascript - 读取二进制数据图像 JavaScript

javascript - fs.createReadStream 找不到文件

python - 如何在没有 2 个 for 循环的情况下迭代矩阵

python - 无法将变量与 while 循环中的输入进行比较

ios - 在swift中调用webservice后从异步调用函数返回数据并保存变量

javascript - 选择选项后使用ajax过滤数据

c++ - 在 C++ 中将数组编码为 jpeg 图像

R:使用3D数组(纬度,经度和时间)随时间推移计算​​函数的最佳方法是哪种?

javascript - 访问名称中具有特定值的特定数组