imDavid_dev
imDavid_dev

Reputation: 98

How could I add variables according to the length of the array?

I have an array that the values ​​range from A to Z, which I want to convert to variables that depend on the input data, for example:

enter the data

362,232,113 and this becomes an array of a length of 3 unit.

so I want to assign the name of a variable depending on the length of the input array but when executing the code, it assigns the array index well, but that same index executes the length of the input array and does not assign the variables as I would like it to. in fact when executing this happens:

(3) 326 showing that the matrix was correctly divided but the same index was executed 3 times, in summary what I want is to be executed as follows:

"A = 326" "B = 232" "C = 113"

In advance I thank you for your help

var asignLetter = ["A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","Z","X","Y","Z"];

matrix =[326,232,113];

function divide(){
    xyz = matrix.split(",");
    console.log(matrix);
    for(var i = 0;i < xyz.length; i++){
        window[assignLetter[i]] = xyz[i];
        console.log(A); //(2) 326

    }
}

Upvotes: 0

Views: 52

Answers (2)

BrianisWinston
BrianisWinston

Reputation: 26

I think you want to pass the parameters 326,232,113 as a whole string. You're passing them as parameters wrong.

So just do the same thing you're doing but like this: divide("326,232,113")

Upvotes: 0

Taki
Taki

Reputation: 17654

You have a typo assignLetter instead of asignLetter ( two s ) and you need to pass a string to your function for it to work :

var assignLetter = ["A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","Z","X","Y","Z"];

divide("326,232,113")// input data

function divide(matrix){
    xyz = matrix.split(",");
    for(var i = 0;i < xyz.length; i++){
        window[assignLetter[i]] = xyz[i];
    }
}

console.log({A,B,C});

You should avoid creating global variabels like that, have them in an object instead

var assignLetter = ["A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","Z","X","Y","Z"];

var myVars = {};

divide("326,232,113")// input data

function divide(matrix){
    xyz = matrix.split(",");
    for(var i = 0;i < xyz.length; i++){
        myVars[assignLetter[i]] = xyz[i];
    }
}

console.log(myVars);

Upvotes: 1

Related Questions