3

I have the next code in javascript. I deleted some unnecessary items because it went to long.

var options = {
    dhcode: true,
    commands: {
        bold: {
            enabled: true,
            view: true,
            exec: true,
            cmd: 'bold',
            param: null
        },
        italic: {
            enabled: true,
            view: true,
            exec: true,
            cmd: 'italic',
            param: null
        },
        underline: {
            enabled: true,
            view: true,
            exec: true,
            cmd: 'underline',
            param: null
        }
    }
}

Now i want to get al data in the options.commands object. But everything what i try don't work. This is what i am trying:

for(var i=0;i<options.commands.length;i++) {
alert(options.commands[i].cmd);
}

Please help me.

ghoppe
  • 20,640
  • 3
  • 28
  • 20
Timo
  • 6,855
  • 6
  • 23
  • 25

3 Answers3

8

.length is a property of arrays, what you have is an object.

Try:

for(var key in options.commands) {
    alert(options.commands[key].cmd);
}
sorpigal
  • 24,422
  • 8
  • 57
  • 73
2

Have a look at how-to-loop-through-javascript-object-literal-with-objects-as-members.

Essentially:

for (var key in options.commands) {
   alert(  options.commands[key].enabled );
   ...
}
Community
  • 1
  • 1
Justin Ethier
  • 127,537
  • 50
  • 225
  • 279
1
for(var i in options.commands){
   alert(i); //bold, italic, underline
   alert(options.commands[i].cmd);
}
Jage
  • 7,920
  • 3
  • 31
  • 30