Я пытаюсь предоставить более динамичный 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 в его неработающем состоянии, но я бы хотел более простой способ сделать это.