phaser4-rex-plugins
Version:
37 lines (32 loc) • 1.05 kB
JavaScript
var CreateTestFunction = function (keys, equations) {
var conditions = [];
for (var i = 0, cnt = keys.length; i < cnt; i++) {
if ((equations[i] === '') || (equations[i] == null)) {
continue;
}
conditions.push(
CreateComparisonLogic(keys[i], equations[i])
);
}
var logic = (conditions.length > 0) ? conditions.join('&&') : 'false';
var f = new Function('values', 'return ' + logic);
return f;
};
var IsEquation = function (s) {
return (s.indexOf('==') != -1) ||
(s.indexOf('!=') != -1) ||
(s.indexOf('>=') != -1) ||
(s.indexOf('<=') != -1) ||
(s.indexOf('>') != -1) ||
(s.indexOf('<') != -1);
};
var CreateComparisonLogic = function (key, equation) {
if (!IsEquation(equation)) {
if (isNaN(equation)) {
equation = `'${equation}'`;
}
equation = `==(${equation})`;
}
return `(values['${key}']${equation})`;
};
export default CreateTestFunction;