JavaScript - Como criar uma matriz associativa que garanta a ordem?

Como posso criar uma matriz associativa quegarante ordem?

Objeto (não ordem de garantia):

var obj = {
  "first":"first",
  "2":"2",
  "34":"34",
  "1":"1",
  "second":"second"
};
for (var i in obj) {
    console.log(i);
};

Resultado:

1
2
34
first
second

Matriz:

var a = new Array();
a['first'] = "first";
a['2'] = "2";
a['34'] = "34";
a['1'] = "1";
a['second'] = "second";
console.log(a); // [1: "1", 2: "2", 34: "34", first: "first", second: "second"]

for (var i in a) {
    console.log(i);
};

Resultado:

1
2
34
first
second

A matriz não garante a ordem.

Como posso criar uma matriz correta que garanta a ordem então?

questionAnswers(2)

yourAnswerToTheQuestion