Заполнение массива через функцию

Есть следующий код


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 записей
→ Ссылка