List data = [1, 2, 3];
data.forEach((value) {
if (value == 2) {
// how to stop?
}
print(value);
});
jQuery에서 작동하는 return false;
을 시도했지만 Dart에서는 작동하지 않습니다. 할 방법이 있습니까?다트의 .forEach()를 멈추는 방법?
List data = [1, 2, 3];
data.forEach((value) {
if (value == 2) {
// how to stop?
}
print(value);
});
jQuery에서 작동하는 return false;
을 시도했지만 Dart에서는 작동하지 않습니다. 할 방법이 있습니까?다트의 .forEach()를 멈추는 방법?
당신은 또한 사용할 수에 /에서 암시 적으로 적절하게 다른 답변에서 설명 반복자 사용하는 :
List data = [1,2,3];
for(final i in data){
print('$i');
if (i == 2){
break;
}
}
아래의 "takeWhile()"솔루션은 Dart에 대한 최근 변경 사항을 활용하며 대부분의 경우 더 나은 해결책 일 수 있습니다. –
forEach가받는 콜백은 void를 반환하므로 반복을 중지 할 메커니즘이 없습니다.
이 경우당신은 반복자를 사용한다 :
void listIteration() {
List data = [1,2,3];
Iterator i = data.iterator();
while (i.hasNext()) {
var e = i.next();
print('$e');
if (e == 2) {
break;
}
}
}
다트 수행을 로컬이 아닌 반환을 지원하지 않으므로 콜백에서 반환해도 루프가 중단되지 않습니다. jQuery에서 작동하는 이유는 each()가 콜백에 의해 반환 된 값을 확인한다는 것입니다. Dart forEach 콜백은 void를 반환합니다. 실연
파괴 List
List<int> example = [ 1, 2, 3 ];
for (int value in example) {
if (value == 2) {
break;
}
}
Map
당신은 단순히 지정된 맵에서 반복자를 얻을 수없는 Map
를 처리하는 경우,하지만 당신이 할 수있는 값이나 키에 적용하여 for
을 계속 사용하십시오. 당신이 원하는 경우 [ 'A', 'B', 'C' ]
가의 LinkedHashMap을 사용하는 등의지도가 반드시 그들이 키가없는 것을
Map<String, int> example = { 'A': 1, 'B': 2, 'C': 3 };
for (String key in example.keys) {
if (example[key] == 2 && key == 'B') {
break;
}
}
참고 : 때때로 모두 키와 값의 조합을해야 할 수도 있기 때문에, 여기에 예입니다. 그냥 값을 원하면 example.keys
대신 example.values
을 사용하면됩니다. foreach는()와 takeWhile()를 사용하여 예를 구현하는 것도 가능
List<int> example = [ 1, 2, 3 ];
int matched = example.firstMatching((e) => e == 2, orElse:() => null);
: 당신은 단지 요소에 대해 검색하는 경우에
양자 택일로, 당신은 모든 것을 단순화 할 수 있습니다.
var data = [1, 2, 3];
data.takeWhile((val) => val != 2).forEach(print);
.takeWhile()이 원래 답변을 올렸을 때 주위에 없었습니다. 대부분의 경우 지금은 더 적절하고 우아한 접근 방식이라고 말할 수 있습니다. –
"작동하지 않음"은 무엇을 의미합니까? 실제로 무엇을합니까? –
아무 것도하지 않습니다. – Leksat
JavaScript로 작동한다고하면 jQuery와 같은 라이브러리에서 의미가 있습니까? 여기에 설명 된 알고리즘이 false 값을 반환하지 않는 것처럼 보입니다. https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Array/forEach 이 기능을 원한다면 버그. –