Javascript如果Condition没有正确评估

时间:2018-05-04 12:26:40

标签: javascript angularjs

我有一段代码,其中变量包含特定字符串(此处为multiply),当我检查变量是否具有该特定字符串时,条件始终等于false。我找不到我在这里缺少的东西。

 // calculations
$scope.$watch('colInput.' + el.key, function () {
  angular.forEach($scope.colInput[el.key], function (item, index) {
    angular.forEach($scope.column[el.key], function (item_1, index_1) {
       if (item.hasOwnProperty(item_1.key)) {
           item[item_1.key].type = item_1.type;
           item[item_1.key].id = item_1.id;
           item[item_1.key].options = item_1.options;
       } 
       else {
            item[item_1.key] = {};
            item[item_1.key].type = item_1.type;
            item[item_1.key].id = item_1.id;
            item[item_1.key].options = item_1.options;
       }
    })

    angular.forEach(item, function (elem, key) { //each column of the row
       var operand_1, operator, operand_2;
       if (elem.type == 10) {
       // analyzing the formula
       elem.options.forEach(function (el, index) {
           if (isNaN(el) && index == 1) {
             operator = el;
           } else if (isNaN(el) && index == 0) {
                operand_1 = el;
           } else if (isNaN(el) && index == 2) {
                operand_2 = el;
           } else if (!isNaN(el)) {
                operand_2 = parseFloat(el);
           }
       })
       console.log(operator, eval(operator === "multiply"), typeof operator);

       if (operator == 'multiply') {
           console.log("IF---")
           elem.value = parseFloat(item[operand_1].value) * operand_2;
        }
    }
   })
  })
}, true)

1 个答案:

答案 0 :(得分:2)

看起来你的operator是一个HTML元素而不是一个字符串。 与multiply的比较将始终为假。