javascript - Object with another's object's property as a key -
i have object this: var myobj = {action1:0, action2:1, action3:2};
test function gets values list parameters , simplify unit-testing want human readable labels inside of function
function myfunc(someaction, anotheraction, blablabla) { console.log("action: " + arguments[0] + " action: " + arguments[1]); //some code here } so inside of function can see values 0 1 2
trying workaround tried create new object this
var dictobj = {myobj.action1:"action1", myobj.action2:"action2", myobj.action3:"action3"} and resolve values names inside of function:
console.log("action: " + dictobj[arguments[0]] + " action: " + dictobj[arguments[1]]); but didn't work because of
'uncaught syntaxerror: unexpected token .' how can rework code readable description?
in es5 , earlier, have create object series of statements:
var dictobj = {}; dictobj[myobj.action1] = "action1"; dictobj[myobj.action2] = "action2"; dictobj[myobj.action3] = "action3"; as of es2015 (aka "es6"), can computed property names in object initializer instead:
let dictobj = { [myobj.action1]: "action1", [myobj.action2]: "action2", [myobj.action3]: "action3" }; you can use expression within [] create property name; in case it's simple property lookup.
in both cases, note there's no live relationship; if change myobj.action1 42 later, after doing above, doesn't have effect on property name in dictobj.
Comments
Post a Comment