lavezzi1
@lavezzi1

Как сделать match по параметрам?

Есть набор параметров по которым нужно сравнить элемент, как сделать это эффективно? То есть я пишу в params какие то параметры по которым нужно сматчить элементы, элемент содержить все параметры то true.

параметры
{ link: { params: { rel: 'shortcut icon' } } }

пример элементов для сравнение
{ rel: 'shortcut icon', type="image/x-icon" } //true
{ rel: 'stylesheet' } //false
  • Вопрос задан
  • 47 просмотров
Пригласить эксперта
Ответы на вопрос 2
hzzzzl
@hzzzzl
если сравнивать строки, а не вложенные объекты или массивы

function check(o, params) {
  let match = false
  Object.entries(o).some(([k, v]) => {
    if(Object.entries(params).some(([kk, vv]) => k === k && v === vv)) match = true
  })
  return match
}

params = { rel: 'shortcut icon' } 
o = { rel: 'shortcut icon', type: "image/x-icon" } 
check(o, params)
// true

o = { rel: 'stylesheet' }
check(o, params)
// false
Ответ написан
john36allTa
@john36allTa
That`s calling Walker
Object.prototype.matchProps = function(props){
   for (key in props)
      if (! (key in this.props) || props[key] !== this.props[key]
         return false
    return true
}
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы