Когда у вас есть много значений, это обычно признак того, что ваш дизайн нуждается в повторной обработке.
Формируйте прерывистые классы case, которые затем объединяются в более крупные. Это также упрощает понимание кода, обоснование и поддержку кода. Как и в обход этой проблемы у вас есть.
Например, если бы я хотел хранить пользовательские данные, я мог бы это сделать ....
case class User(name: Name, email: String)
case class Name(first: String, last: String)
С таким количеством вещей, это, конечно, не было бы необходимо. Но если у вас есть 22 вещи, которые вы пытаетесь втиснуть в один класс, вы все равно захотите сделать такой класс прерывистого случая.
Переменная, определенная ключевым словом let
, видна только внутри блока scope , что означает область, определенную фигурными скобками. В вашем коде вы определяете genderPeer
дважды, но в обоих случаях он виден только внутри этого небольшого блока кода:
if (employee.gender == 'M') {
const lookupObject = {
id: employee.peerID,
gender: 'F',
}
let genderPeer = genderPayPeers.find(x => x._id == lookupObject);
} else {
const lookupObject = {
id: employee.peerID,
gender: 'M',
}
let genderPeer = genderPayPeers.find(x => x._id == lookupObject);
}
Чтобы исправить это, вы должны переместить определение переменной за пределы этих областей, например:
let genderPeer;
if (employee.gender == 'M') {
const lookupObject = {
id: employee.peerID,
gender: 'F',
}
genderPeer = genderPayPeers.find(x => x._id == lookupObject);
} else {
const lookupObject = {
id: employee.peerID,
gender: 'M',
}
genderPeer = genderPayPeers.find(x => x._id == lookupObject);
}