Changing One Array Also Changes Another

This is a simplified version of the problem I’m having:


var a = ["Pikachu", "Bulbasaur", "Charmander", "Squirtle"],
b = a,
c = a;

alert(b.length);    // Alerts "4"
c.splice(0, 1);
alert(b.length);    // Alerts "3"

How do I initialize b and c so that what I do to one doesn’t affect the other?

Provided that none of the elements are types that are passed by reference:

var a = ["Pikachu", "Bulbasaur", "Charmander", "Squirtle"],

b = a.slice( 0 ),
c = a.slice( 0 );

// or

b = [].concat( a );
c = [].concat( a );