0

I have a class like this:

label = 
{
   car1 = "Chevrolet Camaro",
   car2 = "Ford Mustang",
   car3 = "Dodge Challenger"
}

When I need to get a label, I use this method:

function getLabel(name)
{
   switch (name.ToLowerCase())
   {
      case "car1":
         return label.car1;
         break;
      case "car2":
         return label.car2;
         break;
      case "car3":
         return label.car3;
         break;
   }
}

This function is OK for few rows, but if I have so many rows, is there any way to handle this? Is there any way like:

function getLabel(name)
{
   text = name.ToLowerCase();
   return label.text;
}    

Thank you very much.

laurent
  • 88,262
  • 77
  • 290
  • 428
Just A Name
  • 19
  • 1
  • 6

2 Answers2

3

You can access the members of an object using a string like this:

function getLabel(name)
{
   var text = name.ToLowerCase();
   return label[text];
}    

Further Reading

p.s.w.g
  • 146,324
  • 30
  • 291
  • 331
0

You can create a car object for easy get it's properties, like this:

function carObj(label, name){
  this.label = label;
  this.name = name;
}

var cars = new Array(
        new carObj('car1','Chevrolet Camaro'),
        new carObj('car2','Ford Mustang'),
        new carObj('car3','Dodge Challenger')
        );

function getCarName(label){
   for(var i = 0; i < cars.length; i++){
       if(cars[i].label == label){
          return cars.name;
       }
   }
   return '';
}
Ringo
  • 3,795
  • 3
  • 22
  • 37