angularjs - कोणीय जेएस ब्रेक प्रत्येक के लिए




javascript-framework (12)

अन्य उत्तर राज्य के रूप में, कोणीय इस कार्यक्षमता प्रदान नहीं करता है। jQuery हालांकि करता है, और यदि आपने jQuery और कोणीय को लोड किया है, तो आप इसका उपयोग कर सकते हैं

jQuery.each ( array, function ( index, value) {
    if(condition) return false; // this will cause a break in the iteration
})

http://api.jquery.com/jquery.each/ देखें

मेरे पास एक कोणीय फोरैच लूप है और यदि मैं मान से मेल खाता हूं तो मैं लूप से तोड़ना चाहता हूं। निम्नलिखित कोड काम नहीं करता है।

angular.forEach([0,1,2], function(count){
  if(count == 1){
    break;
  }
});

मैं इसे कैसे प्राप्त कर सकता हूं?


आप इसका उपयोग कर सकते हैं:

var count = 0;
var arr = [0,1,2];
for(var i in arr){
   if(count == 1) break;
   //console.log(arr[i]);
}

इसे ब्रेक के रूप में आज़माएं;

angular.forEach([0,1,2], function(count){
  if(count == 1){
    return true;
  }
});

ऐरे कुछ विधि का प्रयोग करें

 var exists = [0,1,2].some(function(count){
      return count == 1
 });

अस्तित्व सच हो जाएगा, और आप इसे अपने फ़ंक्शन में एक चर के रूप में उपयोग कर सकते हैं

if(exists){
    console.log('this is true!')
}

ऐरे कुछ विधि - जावास्क्रिप्ट


कृपया ForEach के कुछ या हर उदाहरण का उपयोग करें,

Array.prototype.some:
some is much the same as forEach but it break when the callback returns true

Array.prototype.every:
every is almost identical to some except it's expecting false to break the loop.

कुछ के लिए उदाहरण:

var ary = ["JavaScript", "Java", "CoffeeScript", "TypeScript"];

ary.some(function (value, index, _ary) {
    console.log(index + ": " + value);
    return value === "JavaScript";
});

प्रत्येक के लिए उदाहरण:

var ary = ["JavaScript", "Java", "CoffeeScript", "TypeScript"];

ary.every(function(value, index, _ary) {
    console.log(index + ": " + value);
    return value.indexOf("Script") > -1;
});

अधिक जानकारी प्राप्त करें
http://www.jsnoob.com/2013/11/26/how-to-break-the-foreach/


जहां तक ​​मुझे पता है, कोणीय इस तरह के एक समारोह प्रदान नहीं करता है। आप इसके लिए अंडरस्कोर के find() फ़ंक्शन का उपयोग करना चाह सकते हैं (यह मूल रूप से एक ऐसा होता है जो फ़ंक्शन सत्य होने के बाद लूप से बाहर हो जाता है)।

http://underscorejs.org/#find


मुझे एहसास है कि यह पुराना है, लेकिन एक सरणी फ़िल्टर जो आपको चाहिए वह कर सकता है:

var arr = [0, 1, 2].filter(function (count) {
    return count < 1;
});

फिर आप arr.forEach और अन्य सरणी कार्यों को चला सकते हैं।

मुझे एहसास है कि यदि आप पूरी तरह से लूप ऑपरेशंस पर कटौती करना चाहते हैं, तो शायद यह वही नहीं होगा जो आप चाहते हैं। इसके लिए आप सबसे अच्छा उपयोग while


मैं इसे बदले में करना पसंद करूंगा। लूपिंग भाग को निजी फ़ंक्शन में रखें और जब आप लूप को तोड़ना चाहते हैं तो वापस आएं।


यह उदाहरण काम करता है। कोशिश करो।

var array = [0,1,2];
for( var i = 0, ii = array.length; i < ii; i++){
  if(i === 1){
   break;
  }
}

angular.forEach लूप एक शर्त मैच पर तोड़ नहीं सकता है।

मेरी व्यक्तिगत सलाह है angular.forEach बजाय एक angular.forEach फॉर लूप का उपयोग angular.forEachangular.forEach

लूप के लिए नेटिव लगभग 90% तेज है और लूप के लिए अन्य है।

अनगिनत में लूप के लिए उपयोग करें:

var numbers = [0, 1, 2, 3, 4, 5];

for (var i = 0, len = numbers.length; i < len; i++) {
  if (numbers[i] === 1) {
    console.log('Loop is going to break.'); 
    break;
  }
  console.log('Loop will continue.');
}

break लिए कोणीय में प्राप्त करना संभव नहीं है, हमें ऐसा करने के लिए प्रत्येक को संशोधित करने की आवश्यकता है।

$scope.myuser = [{name: "Ravi"}, {name: "Bhushan"}, {name: "Thakur"}];  
                angular.forEach($scope.myuser, function(name){
                  if(name == "Bhushan") {
                    alert(name);
                    return forEach.break(); 
                    //break() is a function that returns an immutable object,e.g. an empty string
                  }
                });

$scope.arr = [0, 1, 2];  
$scope.dict = {}
for ( var i=0; i < $scope.arr.length; i++ ) {
    if ( $scope.arr[i] == 1 ) {
        $scope.exists = 'yes, 1 exists';
        break;
    }
 }
 if ( $scope.exists ) {
     angular.forEach ( $scope.arr, function ( value, index ) {
                      $scope.dict[index] = value;
     });
 }




javascript-framework