March 11, 2012

Better way of splitting and assigning many values in Javascript?

Question by Aaron

I have a for loop that cycles through the number of elements that the user has created. There are a lot of available settings in this plugin, and each element can receive it’s specific settings.

  1. User settings are entered in the following format: speed_x: “1000,500 > 1000,200 > 0,0”
    This controls the speed_x in/out for 3 separate elements. The > divides by object and the commas separate the in/out.

  2. So I can grab specific object speed_x values, I’ve split speed_x into speed_x_set (splitting by >) resulting in:

1 1000,500
2 1000,200
3 0,0`

3 Inside the loop, I grab the value by index (since it’s the object #) and split it by comma (to get speed_x_in and speed_x_out.)

for(var i=0; i<OS.numberofobjects; ++i){
   OS.speed_x_on_set[i]=speed_x_set[i].split(",")[0],
   OS.speed_x_off_set[i]=speed_x_set[i].split(",")[1],
   ...
};

Everything is assigned by object and by setting in/out correctly into the master OS settings object. T*he problem is I have many, many settings which need to be split in this fashion…* for example: delay_x_set, speed_y_set, opacity_set, etc. Their names are all based on the default setting name, with “_set” added as shown above. Hopefully this provides enough information. Thanks!

Answer by Starx

I would say to cache the split result

for(var objindex=0; objindex<OS.numberofobjects; ++objindex){
   var splits = speed_x_set[objindex].split(","); //Cache the split so its does not need to be done twice
   OS.speed_x_on_set[objindex] = splits[0];
   OS.speed_x_off_set[objindex] = splits[1];
   ...
};

Author: Nabin Nepal (Starx)

Hello, I am Nabin Nepal and you can call me Starx. This is my blog where write about my life and my involvements. I am a Software Developer, A Cyclist and a Realist. I hope you will find my blog interesting. Follow me on Google+

...

Please fill the form - I will response as fast as I can!