Он возвращает, может ли оператор оценивать значение false. например:
!false // true
!true // false
!isValid() // is not valid
Вы можете использовать его дважды, чтобы принудить значение к boolean:
!!1 // true
!!0 // false
Итак, чтобы более точно ответить на ваш вопрос:
var myVar = !function(){ return false; }(); // myVar contains true
Редактировать: он имеет побочный эффект изменения объявления функции в выражении функции. Например. следующий код недействителен, поскольку он интерпретируется как объявление функции, в котором отсутствует требуемый идентификатор (или имя функции ):
function () { return false; }(); // syntax error
var failedCount = 0;
angular.forEach(result1, function (value, key) {
$scope.percentage = (value.score * 100 / value.total).toFixed(2);
if ($scope.percentage < 50) {
$scope.rm = "Failed"
$rootScope.sendmail = 0
failedCount++;
}else {
$scope.rm = "Passed"
$rootScope.sendmail = 1
}
});
console.log(' total failed count : '+failedCount);
Возьмите переменную за пределами forEach и присвойте ей ноль
после того, как увеличите ее, когда вы получите $ scope.rm = "Failed"
, тогда вы получите no. выполнения цикла для этого условия
, например:
var Failedcount=0,Passedcount=0;
angular.forEach(result1, function (value, key) {
$scope.percentage = (value.score * 100 / value.total).toFixed(2);
if ($scope.percentage < 50) {
$scope.rm = "Failed"
$rootScope.sendmail = 0
Failedcount++;
}else {
$scope.rm = "Passed"
$rootScope.sendmail = 1
Passedcount++;
}
});
console.log("failed counter",Failedcount)
console.log("passed counter",Passedcount)
Здесь я объявил еще одну переменную для отслеживания того, сколько раз она терпела неудачу.
$scope.numberOfFails = 0
Затем увеличивайте его на 1 каждый раз, когда выполняется условие отказа, поэтому он учитывается при каждом сбое.
$scope.numberOfFails = 0
angular.forEach(result1, function(value, key) {
$scope.percentage = (value.score * 100 / value.total).toFixed(2);
if ($scope.percentage < 50) {
$scope.rm = "Failed"
$rootScope.sendmail = 0
$scope.numberOfFails++
} else {
$scope.rm = "Passed"
$rootScope.sendmail = 1
}
});
console.log($scope.numberOfFails)
После этого вы получите $scope.numberOfFails
в качестве правильного числа неудачных попыток.