seeseekey.net - Invictus Deus Ex Machina

In JavaScript ist es durchaus möglich Enums anzulegen:

var Protocol =
{ 
  PAMSG_REGISTER:0x0000, // D version, S username, S password, S email, S captcha response
  APMSG_REGISTER_RESPONSE:0x0002, // B error, S updatehost, S Client data URL, B Character slots
  PAMSG_UNREGISTER:0x0003, // S username, S password
}

Interessant wird es nun, wenn man versucht aus einer Zahl in diesem Beispiel der “2” wieder einen Enum (“APMSG_REGISTER_RESPONSE”) zu erzeugen. Hierbei hilft die Funktion “getEnumFromInteger” welche wie folgt aussieht:

function getEnumFromInteger(enumWithValues, integer)
{
  var keys = Object.keys(enumWithValues);
    
  for (var i=0; i<keys.length; i++)
  {
    if(enumWithValues[keys[i]]==integer) return keys[i];
  }
    
  return null;
}

Damit wird der Enum durchiteriert und der entsprechende Schlüssel, welcher dem Integer entspricht, zurückgegeben.

Schreibe einen Kommentar

You have to agree to the comment policy.