Я пытаюсь упростить эту функцию, так как может быть множество type
данных, и для каждого типа есть также мужская и женская версия. Число и имя элементов в объектах всегда одинаковы.Упростите функцию с повторяющимися частями if/else.
Как видите, большая часть кода повторяется ...
function calculate(type, j, value, s) {
for (var i = j; i > 4; i--) {
if (type == 'weight') {
if (s == 'f') {
if (weightFemale.hasOwnProperty(i)) {
var m = weightFemale[i][0],
l = weightFemale[i][1],
s = weightFemale[i][2];
return getcalc(m,l,s);
}
}
else {
if (weightMale.hasOwnProperty(i)) {
var m = weightMale[i][0],
l = weightMale[i][1],
s = weightMale[i][2];
return getcalc(m,l,s);
}
}
}
else if (type == 'length') {
if (s == 'f') {
if (lengthFemale.hasOwnProperty(i)) {
var m = lengthFemale[i][0],
l = lengthFemale[i][1],
s = lengthFemale[i][2],
return getcalc(m,l,s);
}
}
else {
if (lengthMale.hasOwnProperty(i)) {
var m = lengthMale[i][0],
l = lengthMale[i][1],
s = lengthMale[i][2],
return getcalc(m,l,s);
}
}
}
}
return false;
}
Как я могу упростить, если/иначе-части для вида и пола?
, как ваш код, кажется, рабочий код, вы можете попросить об этом на codereview.stackexchange.com. что касается вопроса, то выполнение функции для повторяющихся частей может немного помочь. –
Я голосую, чтобы закрыть этот вопрос как не по теме, потому что он должен быть на сайте, таком как codereview.stackexchange – rlemon
Во-первых, этот код работает правильно? Потому что 's = 'f'' должно быть' s ==' f''. –