así que tengo esto en el Javascript para mi página:Javascript Enum Para Correspondiente Valor de cadena
var TEST_ERROR = {
'SUCCESS' : 0,
'FAIL' : -1,
'ID_ERROR' : -2
};
y realizar pruebas sobre las funciones de la página, así:
function test()
{
// Get the paragraph from the DOM
var testResultParagraph = document.getElementById('testResult');
// Check the paragraph is valid
if(!testResultBox)
{
// Update the web page
testResultParagraph.value = TEST_ERROR.ID_ERROR;
return TEST_ERROR.ID_ERROR;
}
// Something to store the results
var testResult = TEST_ERROR.SUCCESS;
// Test the calculation
testResult = testCalculate()
// Update the web page
testResultParagraph.value = testResult;
// The test succeeded
return TEST_ERROR.SUCCESS;
}
El resultado de testCalculate()
y el valor del párrafo será 0, -1, -2 dependiendo del resultado.
Ahora desea asignar a un cadena para que el 'éxito' del párrafo espectáculos, 'Fallo' o 'Error ID'
que podía hacer esto algunas maneras he intervenido:
var TEST_ERROR = {
'SUCCESS' : {VALUE : 0 , STRING: 'Success' },
'FAIL' : {VALUE : -1, STRING: 'Fail' },
'ID_ERROR' : {VALUE : -2, STRING: 'Id Error'},
};
requeriría una modificación de los métodos de acceso de punto de enumeración, o
var TEST_ERROR = {
'SUCCESS' : 0,
'FAIL' : 1,
'ID_ERROR' : 2
};
var TEST_STRING = [
'Success',
'Fail',
'ID Error'
];
lo que requeriría cambios en la lógica (result > TEST_ERROR.SUCCESS
parece extraño aunque!)
Mi pregunta es ¿cómo harías para mapear un valor de enumerador a un valor de cadena en Javascript? Estoy pensando que la segunda forma es la más sensata, pero me gustaría que el enumerador sea positivo para los éxitos y negativo para los errores. También me gusta la idea de la primera que contiene las cadenas y los valores en la estructura del objeto.
¿Alguna idea?
Gracias!
Matt
PS. Voy a hacer las pruebas en un Trabajador web, para que la página no cuelgue y los resultados se incluirán en una tabla, no en un párrafo como el anterior.
PPS. Soy bastante nuevo en la programación de Javascript, pero hago mucho en ASM, C, C++, C#.
Gracias por las respuestas, estoy bastante adelantado en este proyecto, así que aceptaré una respuesta, pero no estoy seguro de qué dirección tomaré en este momento. –