Mientras estoy depurando, constantemente escribo este fragmento de código:
a = 2; // do some operation on variable a console.log("The a variable is now " + a);Me preguntaba si podría crear una función que acortara ese proceso, así,
function varlog(x) { var vartext = // this is what I don't know return "The " + vartext + " variable is now " + x; } var a = 2; console.log(varlog(a));Dos preguntas,
Puedes usar " Reflejar " como se muestra a continuación
function easyDebug(variable){ let name = Reflect.ownKeys(variable)[0]; let vals = JSON.stringify(variable[name]); console.log("The ( "+ name +" ) variable is now = ( " + vals +" )"); } let a=5; easyDebug({a}); //Will output //The ( a ) variable is now = ( 5 ) let arr=[5,6,7]; easyDebug({arr}); //Will output //The ( arr ) variable is now = ( [5,6,7] ) let obj={"key1":"val1","key2":"val2"}; easyDebug({obj}); //Will output //The ( obj ) variable is now = ( {"key1":"val1","key2":"val2"} ) let obj2={obj}; easyDebug({obj2}); //Will output //The ( obj2 ) variable is now = ( {"obj":{"key1":"val1","key2":"val2"}} ) let arrObj = [obj]; easyDebug({arrObj}); //Will output //The ( arrObj ) variable is now = ( [{"key1":"val1","key2":"val2"}] )Al entregar una variable, el nombre no se conoce. la única parte, donde se conoce una variable, es usar propiedades abreviadas , donde el nombre de la variable ahora es la propiedad.
function varlog(x) { const [k, v] = Object.entries(x)[0]; return `The ${k} variable is now ${v}`; } const a = 2; console.log(varlog({ a })); // call with short hand property