Как сравнить полученные со страницы элементы с переменной?

Вопрос таков: С помощью данного кода получаю массив значений из атрибутов

  console.log([...document.querySelectorAll(".has-tooltip")].map(e => ({
    name: e.getAttribute('data-original-title'),
    float: e.getAttribute('data-float'),
    price: e.getAttribute('data-price')
  })));

На выходе получаю то, что ниже на скрине. введите сюда описание изображения Так вот, собственно вопрос, как мне сравнить то, что я получаю с заранее заданными элементами? Например, я забил в массив что-то типо этого:

const db = {
    "AWP | Gungnir (Factory New)": 0.06
    "★ Sport Gloves | Pandora's Box (Minimal Wear)": 0.14
    "StatTrak™ AK-47 | Fire Serpent (Factory New)": 0.066
}

И нужно, чтобы оно сравнило переменную name с названием, которое в кавычках, а переменную float с тем, что после двоеточия с условием <= и при совпадении выполнило какое то действие конкретно с этим элементом. Если взять с массива и со скрина, то AWP Gungnir бы пропустило, потому что флоат на скрине > чем флоат в базе. Буду очень благодарен за помощь и объяснение того, как это работает. Готов оплатить.


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

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

const db = {
  "AWP | Gungnir (Factory New)": 0.06,
  "★ Sport Gloves | Pandora's Box (Minimal Wear)": 0.14,
  "StatTrak™ AK-47 | Fire Serpent (Factory New)": 0.066
};

const pageData = [...document.querySelectorAll(".has-tooltip")].map(e => ({
  element: e,
  name: e.getAttribute('data-original-title'),
  float: e.getAttribute('data-float'),
  price: e.getAttribute('data-price')
}));

//console.log(db, pageData);

pageData.forEach(item => {
  if (item.name in db && item.float <= db[item.name]) {
    // do something with item.element
  }
});

→ Ссылка
Автор решения: Alexander Lonberg

Ну так и используйте фильтр

let arrData = [...document.querySelectorAll(".has-tooltip")]
  .map(({ dataset: { originalTitle: name, float, price } }) => ({ name, float, price }))

const db = {
  "AWP | Gungnir (Factory New)": 0.06,
  "★ Sport Gloves | Pandora's Box (Minimal Wear)": 0.14,
  "StatTrak™ AK-47 | Fire Serpent (Factory New)": 0.066
}

// Для быстрого поиска ключа
const map = new Map(Object.entries(db))

// Отфильтрованный массив с которым далее делаем что угодно
let data = arrData.filter(({ name, float, price }) => {
  let key = map.has(name)
  return (key && float <= map.get(name))
})
→ Ссылка