Если вы хотите избежать eval
, и так как есть только 8 comparison operators в JavaScript, достаточно просто написать небольшую функцию, без использования eval
вообще:
function compare(post, operator, value) {
switch (operator) {
case '>': return post > value;
case '<': return post < value;
case '>=': return post >= value;
case '<=': return post <= value;
case '==': return post == value;
case '!=': return post != value;
case '===': return post === value;
case '!==': return post !== value;
}
}
//...
compare(5, '<', 10); // true
compare(100, '>', 10); // true
compare('foo', '!=', 'bar'); // true
compare('5', '===', 5); // false
Зачем вам это нужно? – James
Кроме того, '$ post $ logic $ value' возвращает логическое значение, поэтому нет необходимости в'? true: false' ... – James