David C
David C

Reputation: 979

How to make a switch statement more efficient?

I have the following code

//var r, t, y, f, g, h, c, v, b
    switch(event.key) {
        case 'r' : input.execute("game_stats_build " + r);
        break;
        case 't': input.execute("game_stats_build " + t);
        break;
        case 'y': input.execute("game_stats_build " + y);
        break;
        case 'f': input.execute("game_stats_build " + f);
        break;
        case 'g': input.execute("game_stats_build " + g);
        break;
        case 'h': input.execute("game_stats_build " + h);
        break;
        case 'v': input.execute("game_stats_build " + v);
        break;
        case 'b': input.execute("game_stats_build " + b);
        break;
      }

It's redundant and every time I make a change I have to do a lot of typing. How can I write this better?

Upvotes: 2

Views: 166

Answers (1)

Titus
Titus

Reputation: 22474

You can do something like this:

input.execute("game_stats_build " + window[event.key])

but instead of using window, you should hold those values in an object.

For example, instead of:

var t = "something";
var r = "something else"

use:

var obj = {t: "something", r: "something else"} 

and then:

input.execute("game_stats_build " + obj[event.key])

Upvotes: 5

Related Questions