다음 자바 스크립트는 무엇을합니까?자바 스크립트 -이 줄은 무엇을합니까?
var groups = countrylist.split(',');
for(var i = -1, group; group = groupsCounty[++i];){
...
}
다음 자바 스크립트는 무엇을합니까?자바 스크립트 -이 줄은 무엇을합니까?
var groups = countrylist.split(',');
for(var i = -1, group; group = groupsCounty[++i];){
...
}
With i starting at -1
increase i by 1
get the ith element from the groupsCounty array
if there is no such element: stop
otherwise: assign it to group and carry on (with whatever "…" is)
그것은의 최적화 된 버전이다. 이 일을
그룹의 값을 가드 조건으로 사용하여 그룹 요소를 반복합니다. 즉 루프가 반복하는 횟수를 제어하는 JavaScript Truth를 사용합니다. 왜냐하면 가드가 할당 될 수있는 값이 없을 때 가드가 false가되기 때문입니다.
for
loop은 groupsCounty[++i]
이 거짓 값을 반환 할 때까지 groups
배열을 통과합니다.
:
for (<initial-expression>; <condition>; <final-expression>)
이 초기 발현이var i = -1, group
는 변수를 선언하는 i
및 group
. 각 반복마다 루핑 조건group = groupsCounty[++i]
은 group
에 다음 배열 값을 할당합니다. 이 표현이 잘못되면 (예 : groupsCounty[++i]
이 범위를 벗어난 경우 을 반환하지 않음) 루프가 중지됩니다. 그리고 최종 표현식은 i
이 이미 컨텍스트 표현식 내에서 증가되어 있으므로 비어 있습니다. 인덱스 (i
)에 대한 액세스 권한을 가지고있는 부가가치
for (var i = 0; i < groupsCounty.length; i++;){
var group = groupsCounty[i];
…
}
for (var group in groupsCounty) {
...
}
행 :
'group'은 인덱스 값을 __be__ 할 것이므로 값을 얻기 위해'anotherVariable = groupdCountry [group]'을 사용하여 배열을 역 참조해야합니다. – AnthonyWJones
이것은 (가) 동일하지 않습니다. 'for ... in' 루프는 객체의 프로토 타입에서 상속받은 프로퍼티를 포함하여 정의되지 않은 순서로 객체의 모든 속성을 열거합니다. 그래서 당신은 다른 루프 순서를 가지며 잠재적으로 더 많은 속성들이 반복됩니다. 또한, 귀하의 예제에서,'group'은 원래의 질문과 마찬가지로 속성 값이 아닌 속성 이름이 될 것입니다. –
그것 : -
var groups = countrylist.split(',');
for(var i = 0; i < groups.length; i++)
{
var group = groups[i]
...
}
유일한 차이점은 위의 훨씬 더 일반적이고 더 쉽게 인식 할 것입니다. 위의 코드를 게시하지 않았 으면 "이게 뭐야?"라고 물어보십시오.
게시 한 코드는 영리한 개발 사례이지만 반드시 좋은 코딩 방법은 아닙니다.
'groups'와'groupsCounty'가 같은 변수로되어 있습니까? –
나는 알고 싶다 - 나는 페이지에서 무엇이 부숴 졌는지 알아 내려고 노력하고있다 : p – digiguru
그건 분명히 고장났다. 'var groupsCounty = countrylist.split (',');'에 대해서'var groups = countrylist.split (',');' 을 변경하십시오. 누군가가 리팩토링하고 이름을 변경했지만 직장을 마친 것이 아닙니다. –