To jest przykładowy kod. Chcę zerwać (lub kontynuować) nokaut ko.util.arrayForEach.W jaki sposób mogę przerwać lub kontynuować tworzenie macierzy?
ko.utils.arrayForEach(items, function (item) {
if (...) break;
if (...) continue;
}
To jest przykładowy kod. Chcę zerwać (lub kontynuować) nokaut ko.util.arrayForEach.W jaki sposób mogę przerwać lub kontynuować tworzenie macierzy?
ko.utils.arrayForEach(items, function (item) {
if (...) break;
if (...) continue;
}
Wygląda na to, że nie możesz. Oto źródło arrayForEach (od utils.js na stronie KO GitHub)
arrayForEach: function (array, action) {
for (var i = 0, j = array.length; i < j; i++)
action(array[i]);
},
Jeśli trzeba przerwać lub kontynuować, można po prostu toczyć własną pętli jak w kodzie źródłowym powyżej.
Wygląda ko.utils.arrayFirst lub ko.utils.arrayFilter zmieści twoje potrzeby lepiej niż obecnego podejścia
Jaki jest cel inicjowania 'j'? Możesz po prostu zrobić 'i
@TheMuffinMan Punktem j jest prawdopodobnie zapisanie kilku milisekund, zapobiegając konieczności wyodrębnienia tablicy podczas każdej iteracji pętli. Zobacz [to pytanie StackOverflow] (http://stackoverflow.com/questions/17989270/javascript-for-loop-performance-storing-array-length-in-a-variable). Z jsperf, do którego odnosi się akceptowana odpowiedź na to pytanie, wygląda na to, że w nowoczesnych przeglądarkach nie robi to wielkiej różnicy. – bmode