Как динамически найти пользователя на основе входных данных клиента? [Решено] - PullRequest
1 голос
/ 14 июля 2020

Я пытаюсь предоставить более динамичный c способ определения, существует ли человек на основе ввода пользователя. Я действительно просто ищу способ динамической c на основе этого глупого примера:

пример полей ввода

let inputField = [
{
  name: 'John Smith',
  age: 25,
  married: true
  best_contact: 'email'
},
{
  name: 'John Smith',
  age: 24,
  married: false,
  best_contact: 'email'
},
{
  name: 'John Smith',
  age: 39,
  married: false,
  best_contact: 'phone'
}
]

пример ввода пользователя

let user = {
  name: 'John Smith',
  age: 39,
  married: false,
  best_contact: 'email'
}

мой файл ...

// this is what i have so far

inputField.map(input => {
  return input.find(person => {
    let userKeys = Object.keys(user);
    let result = userKeys.reduce((a, v)) => {
      if(v && person.hasOwnProperty(v)) {
        if(v && input[v] === person[v]) a++;

        else if(['phone', 'email', 'in-person'].includes(v) && person[v]) a++;

        // age condition here i will leave out
      }
     return a;
    }
    return result === userKeys.length; // returns the inputField obj regardless matches users input value
  }
}
// this should return false or nothing

В этом случае он НЕ ДОЛЖЕН ничего возвращать, потому что связанные значения не совпадают. Я все равно получаю совпадение, и я уверен, что у нашего сообщества есть гораздо более чистое решение Dynami c для этого. Я мог бы указать имя, возраст, замужем, best_contact в его неработающем состоянии, но я бы хотел более простой способ сделать это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...