2015-10-21 31 views
37

Bu satırlar kodu vardır:lodash.js _.each döngüsü nasıl durdurulur?

_.each($scope.inspectionReviews, function (value, key) { 
    alert("status=" + value.IsNormal + " " + "name=" + value.InspectionItemName); 
    if (!value.IsNormal) { 
     $scope.status = false; 
     return; 
    } 
    $scope.status = true; 
}) 

Ben döngü durdurmak istiyorum Bir noktada ama dönüş çalışmıyor gibi görünüyor.

Döngüyü nasıl durdurabilirim?

+0

'false 'i iade ettiniz mi? – adeneo

+0

['break'] 'ı (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/break) deneyin. –

+0

Olası yinelenen [Nasıl döngü için durdurulur?] (http://stackoverflow.com/questions/9830650/how-to-stop-a-for-loop) – Jesse

cevap

72
return false; 

Bunu kırmak için her birini bir buda kullanın.

DÜZENLEME: Başlığın alt çizgiye dönüştüğünü gördüm. Alt çizgi mi, yoksa mı? Yukarıda belirttiğim gibi, her biri lodash içinde ancak altını çizebilirsin, tabii ki bunu sağlamayan her şey için öykünür.

+1

"İade" üzerinden "geri dönüş" özelliği var mı? Veya sadece okunabilirlik için? – Rayon

+0

@RayonDabre Lodash'ın avantajı, döngüyü kesmektir. Sadece dönüşü kullanmak döngüden kopmaz, bunu başarmak için yanlış döndürmeniz gerekir. – AtheistP3ace

+4

@RayonDabre 'return' parametresiyle,' return' ifadesi kullanılmadan fonksiyonun sonuna düşmekle aynı olan 'undefined 'iadesi ile eşdeğerdir. – Barmar

2

Koleksiyonun herhangi bir üyesi için belirli bir koşulun doğru olup olmadığını görmek için sınamak isterseniz, yerine Underscore some (any olarak adlandırılır) kullanın.

var hasAtLeastOneFalseStatus = _.any($scope.inspectionReviews, function (value, key) { 
    return !value.IsNormal; 
}) 

$scope.status = hasAtLeastOneFalseStatus ? false: true; 
3

return false => break; return => contiune;

+0

Cevabınızın neden yararlı olabileceğini açıklarsanız daha iyi olur. –

+0

daha iyi çünkü akış kontrolü. cevap, herhangi bir şey döndürmeme (bu, döngüde bir sonraki öğeye atlanmasına neden olur) veya yanlış döndürme (tümüyle durmaya neden olur) arasındaki farkı gösterir. Bugün bir şey öğrendim. Teşekkürler @jack wu –