Проверить, нет ли объекта в массиве объектов, и вставить js - PullRequest
0 голосов
/ 06 августа 2020

У меня есть объект для проверки, если какой-либо объект из массива не совпадает

const obj = {
    question: "What is your dog name?",
  answer: "Browny"
}

const array = [
  {
    question: "What is your name?",
    answer: "Diana"
  },
  {
    question: "What is your dog name?",
    answer: "Browny"
  }
]

Я пробовал фильтровать и сравнивать их, но проверяет только первый объект

array.filter(arr => {
  if (arr.question !== obj.question) response.status(409).json({message: 'Wrong question chosen'}) 
  if (arr.answer !== obj.answer) response.status(409).json({message: 'Please type the right answer'})

  else response.status(200)
})

Я проверяю это JS: Фильтровать массив объектов по массиву, когда ключ объекта - это массив объектов , но это меня немного сбивает с толку

Надеюсь, вы, ребята, можете мне помочь, заранее спасибо!

1 Ответ

0 голосов
/ 06 августа 2020

Ciao, вы можете следовать этому примеру:

const obj = {
    question: "What is your dog name?",
  answer: "Browny"
};

const array = [
  {
    question: "What is your name?",
    answer: "Diana"
  },
  {
    question: "What is your dog name?",
    answer: "Browny"
  }
];

let correct_answer = array.filter(el => el.question === obj.question)[0];


if (correct_answer.answer === obj.answer) console.log("correct answer");
else console.log("wrong answer");

Таким образом, ваш код становится:

let correct_answer = array.filter(arr => arr.question === obj.question);

if (correct_answer.length === 0) response.status(409).json({message: 'Wrong question chosen'}) 
else {
   if (correct_answer[0].answer === obj.answer) response.status(200);
   else response.status(409).json({message: 'Please type the right answer'});
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...