나는 항상 부작용 if
이 나쁜 상태 라는 것을 배웠습니다 . 내가 말하고 싶은 건;
if (conditionThenHandle()) {
// do effectively nothing
}
... 반대로;
if (condition()) {
handle();
}
... 그리고 나는 그것을 이해하지 못하기 때문에 동료들도 행복하다는 것을 알고 있습니다. 우리는 금요일 오후 7시에 집에 돌아가고 모두 즐거운 주말을 보냅니다.
이제 ECMAScript5는 every()
and some()
to 와 같은 메소드를 도입 Array
했으며 매우 유용합니다. 그것들은의 것보다 깨끗 하고for (;;;)
다른 범위를 제공 하며 변수가 요소에 액세스 할 수있게합니다.
입력의 유효성을 검사 할 때 그러나, 나는 더 종종보다하지 이용하여 자신을 찾을 수 있습니다 every
/ some
다음 입력을 검증 사용 조건에 every
/ some
다시 사용 가능한 모델에 입력을 변환하는 몸에;
if (input.every(function (that) {
return typeof that === "number";
})) {
input.every(function (that) {
// Model.findById(that); etc
}
} else {
return;
}
... 내가 하고 싶은 일이 있을 때 ;
if (!input.every(function (that) {
var res = typeof that === "number";
if (res) {
// Model.findById(that); etc.
}
return res;
})) {
return;
}
...이 if
조건 에서 나에게 부작용을줍니다 .
이와 비교해 볼 때 이것은 코드가 이전 코드로 보일 것입니다 for (;;;)
.
for (var i=0;i<input.length;i++) {
var curr = input[i];
if (typeof curr === "number") {
return;
}
// Model.findById(curr); etc.
}
내 질문은 :
- 이것은 확실히 나쁜 습관입니까?
- 암 I (MIS | AB)를 사용
some
하고every
( 해야 나는를 사용for(;;;)
이를 위해?) - 더 나은 접근 방법이 있습니까?
some
내가하고 싶은 일을 내가 사용하는 경우, 요소와 함께 every
, 내가 그 모든 요소에 뭔가를 ... 싶어 some
하고 every
그래서 하나 난 못해, 내가 그 정보에 액세스 할 수 없습니다 그것들을 사용 하거나 부작용을 추가해야합니다.
some
내에서 if
배열의 특정 요소가 내가 운영 할 필요가 특정 자산, 9/10 전시 여부를 결정하는 조건 에 내에서 해당 요소 if
몸을; 지금과 같은 some
말하지 않는 한 (그냥 "하나했다") 속성을 전시 요소, 나도 사용할 수 있습니다 some
다시 (O (2N)), 몸에 또는 난 그냥 내에서 작업을 수행 할 수있는 경우 (조건 머리에 부작용이 있기 때문에 나쁘다).
every
.