Как исключить записи объектов, для которых данный ключ отсутствует в заданном массиве при сопоставлении?

#javascript

#javascript

Вопрос:

При сопоставлении объекта, подобного приведенному ниже, как исключить те, для которых value он находится в массиве arr ?

 const arr = ['foo', 'bar']
return Object.entries(myobject).map(
  ([value, text]) => ({
    text,
    value,
  })
)
 

Комментарии:

1. Можете ли вы точно объяснить, чего вы пытаетесь достичь?

Ответ №1:

Вы можете использовать Array#filter , чтобы отфильтровать ключи, которые находятся в arr массиве. Возвращает Array#includes логическое значение, указывающее на наличие или отсутствие ключа в arr массиве:

 const myobject = {
  hello: "world",
  bar: "bar",
  foo: "foo"
};
const arr = ['foo', 'bar']
const ent = Object.entries(myobject)
  .filter(([value]) => !arr.includes(value))
  .map(([value, text]) => ({
    text,
    value,
  }));
console.log(ent);