Skip to content

Instantly share code, notes, and snippets.

@lsongdev
Created February 28, 2019 09:24
Show Gist options
  • Save lsongdev/3bb803dd771be4097b153541812f1fd2 to your computer and use it in GitHub Desktop.
Save lsongdev/3bb803dd771be4097b153541812f1fd2 to your computer and use it in GitHub Desktop.
var expr = `(a.name == 'lsong' ? b : { c:2 }) + 30`;
const data = {
a: {
name: 'lsong'
},
b: 1,
};
const getValue = (expr, data) => {
const args = Object.keys(data);
const fn = Function.apply(null, args.concat(`return ${expr};`));
return fn.apply(data, args.map(k => data[k]));
};
console.log(getValue(expr, data));
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment