tags:

views:

50

answers:

4

Hi,

I have a variable with a dynamic value (from 1 to 15). Depending on the value of the variable, I want to create an array with the same length.

And, if for example the variable value is 1, I want to store A in the array, if the value is 6 I want to store A,B,C,D,E,F in the array and so on.

How do I achieve this? Thanks in advance.

A: 
var a = 5;

var arr = new Array(a);
for (var i = 0;i<a;i++) {
    arr[i] = String.fromCharCode(65+i);
    document.write("arr["+i+"] = '"+arr[i]+"'<br/>");
}
Max
+3  A: 
var sizeOfArray = 6;

"ABCDEFGHIJKLMNO".slice(0, sizeOfArray).split('');
// ["A", "B", "C", "D", "E", "F"]
Anurag
Thanks Anurag,so where do I create the array?
peter
The second statement returns an array. The `split` function is doing that for you.
Anurag
Well, he only mentioned an idea, not the full solution (nice idea btw). The full solution would be: `var sizeOfArray=6; var newArray = "ABCDEFGHIJKLMNOPQRSTUVWXYZ".slice(0, sizeOfArray).split('');`
Max
so the name of the array will be sizeOfArray?
peter
No, my comment creates a variable "newArray". Original post has no variable with array. There are no line-breaks in comments so I had to put it in 1 line.
Max
A: 
var arrSize = 4;
var myArray = new Array(arrSize);

or you can declare the array without size and then just push a new element in it:

var myArray = new Array();
Array.push(ITEM);

where ITEM is replaced by a variable or string or number you want to add in the array (will be added at the end of the array)

o15a3d4l11s2
A: 

My 2 cents. (this function takes size > 26 into account)

<script type="text/javascript">
    function buildAlphabetArray(size) {
        var range = 26;
        var arr = new Array();
        for (var i = 0; i <= parseInt(size); i++) {
            //calculate current index (recalc to number between 0 and range)
            var j = (i < (range-1) ? i : (i - range * parseInt(i / range))); 
            //get the char value of ascii 65 + index (charAt(65)==A)
            arr[i] = String.fromCharCode(j + 65); //
        }
        //test
        //alert(arr.join(""));
        return arr;
    }
</script>
Peter