barrylachapelle
barrylachapelle

Reputation: 987

Using array values as array names

I am trying to pass an array value into a function as an arg and then use it's value to reference another array. I know that sounds a bit complicated but I am doing it for a reason ;) I THINK that showProject thinks that project1 is a string as it returns only 'p' and ... Any help appreciated?

var projects = ["project1","project2"];

var project1 = ["image1","image2"];
var project2 = ["image1","image2"];

function showProject(arr){

    console.log(arr[0]);

}

//why isn't this showing image 1 in project 1 array?
showProject(projects[0]);

Fiddle > http://jsfiddle.net/4ryLT/

Upvotes: 0

Views: 73

Answers (5)

hsnayd
hsnayd

Reputation: 3

I think you mean this

var projects = [];

projects["project1"] = ["image1","image2"];
projects["project2"] = ["image1","image2"];


function showProject(arr){

   alert(arr[0]);

}

showProject(projects["project1"]);

Upvotes: 0

Alexander Nenkov
Alexander Nenkov

Reputation: 2910

var projects = ["project1","project2"];

var project1 = ["image1","image2"];
var project2 = ["image1","image2"];

function showProject(arr){

    console.log(eval(arr)[0]);

}

showProject(projects[0]);

Upvotes: 0

Frogmouth
Frogmouth

Reputation: 1818

without change your logic:

var projects = ["project1","project2"];
var project1 = ["image1","image2"];
var project2 = ["image1","image2"];


function showProject(arr){

    console.log(eval(arr)[0]);

}
showProject(projects[0]);

byee

Upvotes: -1

A. Wolff
A. Wolff

Reputation: 74420

This seems to be what you want:

jsFiddle

var project1 = ["image1","image2"];
var project2 = ["image1","image2"];

var projects = [project1,project2];

function showProject(arr){

    alert(arr[0]);

}

showProject(projects[0]);

Set arrays as elements of projects array.

Upvotes: 4

timo
timo

Reputation: 2169

is var projects referring to the other two variables? If so, remove the "" and put them in a different order

var project1 = ["image1","image2"];
var project2 = ["image1","image2"];
var projects = [project1,project2];

function showProject(arr){

alert(arr[0]);

}

showProject(projects[0]);

http://jsfiddle.net/4ryLT/3/

Upvotes: 0

Related Questions