Warum ist for schneller als some () oder filter ()

Ich habe zwei verschiedene Methoden ausprobiert, um etwas zu tun, und ich bin vom Leistungsergebnis überrascht:

Ich habe 2 Versionen einer Funktion:

Verwendung einerfor :

$scope.hasBlockResult = function (IS, area, block) {
    if (!block)
        return false;
    for (var i = 0; i < $scope.filteredCartoList.length; i++) {
        if ($scope.filteredCartoList[i].informationSystem === IS 
            && $scope.filteredCartoList[i].area === area 
            && $scope.filteredCartoList[i].block === block)
            return true;
    }
    return false;
};

Und mitsome() Funktion:

$scope.hasBlockResult = function (IS, area, block) {
    if (!block)
        return false;

    return ($scope.filteredCartoList.some(function (carto) {
        if (carto.informationSystem === IS && carto.area === area && carto.block === block)
            return true;
        return false;
    }));
};

Das selbe hier

Zwischen denfor :

for (var i = 0; i < $scope.filteredCartoList.length; i++) {
    if ($scope.filteredCartoList[i].informationSystem == IS 
        && $scope.filteredCartoList[i].type != 'AM' 
        && $scope.filteredCartoList[i].type != 'IF' 
        && $scope.filteredCartoList[i].area == area 
        && $scope.filteredCartoList[i].block == block)
        $scope.resultList.push($scope.filteredCartoList[i]);
    }

und diefilter() :

$scope.resultList = $scope.filteredCartoList.filter(function (carto) {
    if (carto.informationSystem == IS 
        && carto.type != 'AM' 
        && carto.type != 'IF' 
        && carto.area == area 
        && carto.block == block)
        return true;
    return false;
});

Ich habe das @ erwartfilter() und diesome() Methoden, um schneller zu sein als dasfor -Methode, aber in beiden Fällen, nach anglejs batarang Leistung Registerkarte, dieforist schneller

Antworten auf die Frage(6)

Ihre Antwort auf die Frage