Javascript:通过字符串名称使用Array Object

时间:2014-07-01 06:38:36

标签: javascript object javascript-objects

喜欢这个对象,

var myColumnDefs = [
    {key:"label", sortable:true, resizeable:true},
    {key:"notes", sortable:true,resizeable:true},......

我可以将对象称为此方法,它可以正常工作

...
    myColumnDefs.key
    ...

但如何使用Stringname调用此对象

function myObject (string) {
    return myColumnDefs.Stringname

}
alert(myObject('key'));
alert(myObject('sortable'));

感谢帮助

3 个答案:

答案 0 :(得分:2)

您必须使用myColumnDefs[Stringname] Here is the working fiddle并且在您的情况下,您必须通过myColumnDefs[element_index][Stringname]

获取元素

答案 1 :(得分:1)

首先,我认为这不会起作用:

myColumnDefs.key;

您必须引用数组中的一个元素:

myColumnsDefs[0].key;

考虑到这一点,你可以通过它的字符串名称来引用属性:

myColumnsDefs[0]['key'];

答案 2 :(得分:0)

有两种方法可以做到这一点。一种方法是将数组更改为具有键名称为属性的属性的对象。另一种方法是搜索整个数组并找到具有正确名称的密钥。我会建议第一种方式,所以代码看起来像这样:

var keyHolder = {};

for(var i = 0; i < myColumnDefs.length; i ++) {
  if(!keyHolder.hasOwnProperty(myColumnDefs[i].key)) {
    keyHolder[myColumnDefs[i].key = {
      sortable: myColumnDefs[i].sortable,
      resizeable: myColumnDefs[i].resizeable
    }
  }
}

然后你可以这样做:

keyHolder.label

希望这有帮助。