Вы можете добавить проверку, имеет ли ваш объект массива notes
свойство title
. Это можно проверить с помощью hasOwnProperty :
if (fooObject.hasOwnProperty('title'))
или в вашем случае:
item.hasOwnProperty('title')
Однако мы хотим найти случаи, когда ключ title
не существуют и опускаются такие объекты, потому что если нет title
, это означает, что нет метода toUpperCase()
. Так что это можно проверить с помощью оператора !
(НЕ):
if (!item.title) // `NOT` + undefined gives `true`
return false;
Итак, весь код выглядит так:
const notes = [
{},
{
title: 'My next trip',
body: 'I would like to go to Spain'
},
{
title: 'Habbits to work on',
body: 'Excercise, Eat a bit better'
},
{
title: 'Office modification',
body: 'Get a new seat'
}
]
function findNote(notes, noteTitle) {
const index = notes.findIndex(function (item, index) {
if (!item.title)
return false;
return item.title.toUpperCase() === noteTitle.toUpperCase()
})
return notes[index]
}
const note = findNote(notes, 'Office modification')
console.log(note)