несколько условий в одном операторе if, загруженном из файла - PullRequest
0 голосов
/ 02 января 2019

В моем коде есть оператор if, имеющий несколько условий, например: if(cond1 || cond2 || cond3 || cond4). Эти условия могут меняться со временем, и я не хочу редактировать свой код каждый раз, когда они меняются.

Я хотел бы сохранить их в файле, который было бы легче редактировать. как то так:

файл conditions.txt:

cond1
cond2
cond3
cond4

и затем в моем коде if(loadedFile). Моя идея состояла в том, чтобы загрузить файл в массив (\n разделитель), а затем выполнить if(arr[1] || arr[2] || arr[3] || arr[4]), но это не может работать, поскольку существует неизвестное количество условий.

Ответы [ 2 ]

0 голосов
/ 02 января 2019

Если условия уже вычисляются в массиве, вы можете просто убедиться, что ни одно из них не является ложным: if (array.every(element => element)) { Чтобы получить их для оценки в массиве, вам нужно использовать что-то вроде eval, что совершенно небезопасно. Если вы действительно хотите хранить их отдельно, я бы сказал, что вам следует выполнить рефакторинг так, чтобы ваш файл условий был JS, который просто экспортирует сам массив для использования в условиях позже. Затем вы можете импортировать этот массив с require() в ваш основной файл.

0 голосов
/ 02 января 2019

Я не понимаю. Почему проще редактировать условия в отдельном файле, а не в выполняемом?

Чтобы ответить на ваш вопрос, если вы действительно хотите это сделать, посмотрите на eval для выполнения строк в узле.

Если серьезно, это очень плохая привычка приобретать себя.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...