1

like this object,

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

I can call object as this method, which it works

...
    myColumnDefs.key
    ...

but how to call this object with Stringname like

function myObject (string) {
    return myColumnDefs.Stringname

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

thanks for Help

1
  • Is myColumnDefs an object or array of objects ? Commented Jul 1, 2014 at 6:55

3 Answers 3

2

You have to use myColumnDefs[Stringname] Here is the working fiddle And in your case you have to get the element by myColumnDefs[element_index][Stringname]

Sign up to request clarification or add additional context in comments.

Comments

1

First of all, I don't think this will work:

myColumnDefs.key;

You must reference one of the elements in the array:

myColumnsDefs[0].key;

With that in mind you can reference the property by its string name by doing this:

myColumnsDefs[0]['key'];

4 Comments

@cerbrus. That was a typo. Answering on a phone is hard. I'm trying to show how to index an object by its name. I think this is answering the question. Is it not?
So, you accidentally typed ( instead of [, right after [0]?.. That's better...
I'm not sure if this answers the question, since the question is vague, but at least the code works :) -1 removed.
+1 It does answer the question and also provides information about the indexing being incorrect so goes further.
0

There are 2 ways of doing this. One way is to change to array to an object with properties where the key name is a property. The other way is to search through the entire array and find the key with the correct name. I would suggest the first way, so the code would look like this:

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
    }
  }
}

Then you can do this:

keyHolder.label

Hope this helps.

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.