what's the frequency of the letter "у" in:
q: cannot set property 'id' of undefined создаю массив с вложенными в него объектами и пытаюсь его наполнить своими данными вылезает вот такая ошибка. что я делаю не так почему не могу читать по ключу свойства и переписывать их?
    let roomsdata = new array(5).fill([{
    room: {
        id: '',
        title: '',
        users: [{nickname: 'вася'},{nickname: 'серёжа'},{nickname: 'петя'}],
        messages:
            [{
                msg: 'сообщение васи',
                date: getlocaltime(),
                nickname: 'вася'
            }]
    }
}]);

initroomdata()

function initroomdata(){
    const rooms = new array(5).fill('').map((_, i) => ({id:`${i}`, title:`room ${i+1}` }))
    roomsdata.foreach((value, i ,array) => {
        console.log(array)
        console.log(i)
        roomsdata[i].room.id = '' + rooms[i].id
        roomsdata[i].room.title = '' + rooms[i].title
    })
}

d:\projects\test_task\server-chat\index.js:38
        roomsdata[i].room.id = '' + rooms[i].id

typeerror: cannot set property 'id' of undefined

    at d:\projects\test_task\server-chat\index.js:38:30
    at array.foreach (<anonymous>)
    at initroomdata (d:\projects\test_task\server-chat\index.js:35:15)
    at object.<anonymous> (d:\projects\test_task\server-chat\index.js:31:1)
    at module._compile (internal/modules/cjs/loader.js:1137:30)
    at object.module._extensions..js (internal/modules/cjs/loader.js:1157:10)
    at module.load (internal/modules/cjs/loader.js:985:32)
    at function.module._load (internal/modules/cjs/loader.js:878:14)
    at function.executeuserentrypoint [as runmain] (internal/modules/run_main.js:71:12)
    at internal/main/run_main_module.js:17:47


a: каждый элемент roomsdata является массивом. у массива нет свойства room, соответственно значение будет undefined, и далее ошибка при попытке у этого undefined установить свойство id.
для решения нужно либо обращаться у нулевому элементу:
roomsdata[i][0].room.id

либо при заполнении массива использовать объект, а не массив:
new array(5).fill({...})


user
The passage contains twelve "у"s.
assistant