Why all values on return are the same (16)["F", 0, 0, 0, 0, 0] and on console.log(color) I am getting 16 different hex colors :S
let color = [0, 0, 0, 0, 0, 0];
let colors = [];
for (let a = 0; a < 16; a++) {
let x = 0;
switch (a) {
case 10:
x = "A";
break;
case 11:
x = "B";
break;
case 12:
x = "C";
break;
case 13:
x = "D";
break;
case 14:
x = "E";
break;
case 15:
x = "F";
break;
default:
x = a;
}
color[0] = x;
console.log(color);
colors.push(color);
}
console.log(colors);

color[0] = x;is the culprit if I understand your problem.colors.push(color);does not push a copy of the array. It pushes the same array reference each time[[0,0,0,0,0,0], [1, 0,0,0,0,0], [2,0,0,0,0,0] etc... ]