Как сделать проверку на существования атрибута, в методе мап?

Перебираю элементы вот таким образом

const img = await page.evaluate(() => {
return [...document.querySelectorAll('section > a')].filter((value, index) => index > 2).map(i => ({
img: i.querySelector('div > div > div > img:nth-child(2)').getAttribute('data-src')}))
})

Ну проблема в том, что не у всех айтемов есть getAttribute и я получаю ошибку, что атрибут нал Как можно сделать проверку, что если атрибута нет, я мог записать "Картинка не найдена" Я уже и через иф пробовал и через тернарный оператор ?:, просто не приложу ума как ту это можно сделать


Ответы (2 шт):

Автор решения: alezhu

Как-то типа так:

var item;
const value = ((item = document.querySelector('div')) && item.getAttribute && item.getAttribute('data-src')) || 'blablabla';
→ Ссылка
Автор решения: Pavel Nazarian

let images = document.querySelectorAll('img');

//варианта первый
let data = [...images].map(image => {
  let src = image.hasAttribute('data-src') ? image.getAttribute('data-src') : 'нет картинки';
  return {img:src};
})

//варианта второй
let data1 = [...images].map(image => {  
  return {img:image.getAttribute('data-src') || 'нет картинки'};
})


console.log(data);
console.log(data1);
<img data-src='qwe'>
<img data-src='qwe'>
<img data-src='qwe'>
<img>
<img data-src='qwe'>
<img>

→ Ссылка