Заполнение массива через функцию
Есть следующий код
let levelName = "info"
let message = "hello World"
let logsArray = []
const writeToFile = (levelName, message) => {
const logsDir = './logs'
let data = `{"level": "${levelName.toUpperCase()}", "message": "${message}", "timestamp": "${getFormatedCurrenDate()}" } \r\n`
logsArray.push(data)
}
Этот код, при вызове через npm start, пушит строку в массив logsArray, но только одну строку
[
'{"level": "ERROR", "message": "Hello world", "timestamp": "2022-07-28T08:05:49" } \r\n'
]
Как сделать так, чтобы при изменении параметров, добавлялась вторая и третья строка в массив, как показано ниже?
[
'{"level": "WARN", "message": "Hello world", "timestamp": "2022-07-28T09:24:27" } \r\n',
'{"level": "WARN", "message": "Hello world", "timestamp": "2022-07-28T09:24:26" } \r\n',
'{"level": "WARN", "message": "Hello world", "timestamp": "2022-07-28T08:05:59" } \r\n'
]
Ответы (1 шт):
Автор решения: HTO HOT
→ Ссылка
Есть множество способов, вот один из них с помощью цикла for и дополнительного параметра.
let logsArray = []
const writeToFile = (levelName, message,count=1) => {
const logsDir = './logs'
for(let i=0;i<count;i++){
logsArray.push(`{"level": "${levelName.toUpperCase()}", "message": "${message}", "timestamp": "${getFormatedCurrenDate()}" } \r\n`)
}
}
Я бы ещё logsArray поместил бы внутрь функции writeFile.
Пример использования функции:
writeToFile ('WARN','Hello world') ///Добавит 1 запись
writeToFile ('WARN','Hello world',5) ///Добавит 5 записей