MaXComp
@MaXComp
интересуюсь frontend html+css+JS+php. Linux, C

Как можно оптимизировать этот код javascript?

Есть входные параметры, только один из них будет иметь значение. Временно сделал так, так как работает. Но явно бред, и я так подозреваю можно было не приводить каждое значение к нулю, так как операция сложение "отсутствия значения" сама сделает нулем. Но всё же стало интересно написать мини-функцию для обнуления отсутствующих значений, т.к. встречаются моменты где не только сложение, но и умножение, деление.
В целом вопрос как эти нагромождения, сделать более красивыми и правильными. Как перехватить выбранные поля для обработки функцией ниже и выдачи только единственного варианта поля. Поля получаю в плагине Calculated Fields Form

var ed = (fieldname54 || 0)
           + (fieldname51 || 0)
           + (fieldname55 || 0)
           + (fieldname58 || 0)
           + (fieldname60 || 0)
           + (fieldname62 || 0)
           + (fieldname61 || 0)
           + (fieldname65 || 0)
           + (fieldname64 || 0)
           + (fieldname63 || 0)
           + (fieldname68 || 0)
           + (fieldname67 || 0)
           + (fieldname66 || 0)
           + (fieldname72 || 0)
           + (fieldname71 || 0)
           + (fieldname70 || 0)
           + (fieldname75 || 0)
           + (fieldname76 || 0)
           + (fieldname74 || 0)
           + (fieldname80 || 0)
           + (fieldname79 || 0)
           + (fieldname78 || 0);
    function if_false_0 (n){
       n ||0;
    }
  • Вопрос задан
  • 28 просмотров
Решения вопроса 1
@inFureal
function if_else_0(obj) {

    var res = 0;

    for (var i = 0; i < obj.keys().length; i++) {
        if (obj[i] !== 0)
            res += obj[i];
    }
    
    return res;

}

if_else_0([1, 2, 3]);
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы