Последний блок if
не принимает значение переменной body и преобразует его в undefined
. Журнал консоли перед блоком показывает, что тип переменной равен "string"
, но каким-то образом в условии и в условном выражении тело превращается в undefined
.
doc = doc.map(el => {
let { title, body, _id, likes } = el
if (title && title.length > 20) {
el = {
...el,
title:`${title.slice(0, 20)}...`,
}
} else if (!title || typeof title === 'undefined') {
el = {
...el,
title: '',
}
}
console.log(typeof body)
if (body.length > 55) {
el = {
...el,
body: `${body.slice(0, 55)}...`,
}
}
title = el.title
body = el.body
console.log(typeof body)
return {_id,title,body,likes}
})
Выходной вывод журналов равен следующим образом:
[nodemon] restarting due to changes...
[nodemon] starting `node server.js`
App running on port 5000...
string
undefined
string
undefined
string
undefined
Три разных результата представляют три разных документа в массиве do c и, следовательно, шесть выводов консольного журнала, относящихся к каждому значению тела и его изменению. Я не использую точку с запятой в javascript, может ли это быть причиной этой проблемы?