まず、要素をキーで配列に追加するのではなく、オブジェクトに追加する必要があります。つまり、グローバル オブジェクトは次のようにビルドする必要があります。
var _cQueue = [];
var valueToPush = {}; // this isn't an array but a js object used as map
valueToPush['unique_email@gmail.com'] = '1234567';
_cQueue.push(valueToPush);
次に、2 種類のループを使用して繰り返します。
for (var i=0; i<_cQueue.length; i++) { // iterate on the array
var obj = _cQueue[i];
for (var key in obj) { // iterate on object properties
var value = obj[key];
console.log(value);
}
}
MDN の優れたWorking with objectsを参照してください。
ID に関連付けられた電子メールを見つけたい場合は、次の 2 つのことを行うことができます。
1) 見つかるまでループします:
function find(id) {
for (var i=0; i<_cQueue.length; i++) { // iterate on the array
var obj = _cQueue[i];
for (var key in obj) { // iterate on object properties
var value = obj[key];
if (value==id) return key;
}
}
}
2) より速く見つけられるように、すべての ID をマップに入れます。
var bigMap = {};
for (var i=0; i<_cQueue.length; i++) { // iterate on the array
var obj = _cQueue[i];
for (var key in obj) { // iterate on object properties
bigMap[obj[key]] = key; // maps the id to the email
}
}
function find(id) {
return bigMap[id];
}