배열에 다른 값이 있는지 찾아야 합니다. 존재하면 함수 x를 실행하고, 존재하지 않으면 함수 y를 실행합니다. 그러나 for 루프를 사용하면 처음에 동일한 것을 발견하면 y를 실행하고 다른 것을 만날 때까지 x를 실행하지 않습니다. 모두 순회한 후 해당 함수를 실행하도록 만드는 방법은 무엇입니까?
PHP中文网2017-06-30 09:59:33
1. 각 배열 요소에 대해 함수를 실행하는 ES5 array.every 메소드를 사용하세요. 모든 함수 실행 결과가 true이면 최종 결과는 true가 됩니다.
2. for 루프를 사용하면 배열의 첫 번째 요소 값을 저장한 다음 루프를 시작하는 변수가 필요합니다. 배열에 변수와 동일하지 않은 요소가 있는지 확인할 수 있습니다. 이제 X를 실행할 시간입니다(이것은 깨질 수 있습니다). 그렇지 않으면 배열에 다른 값이 없으므로 Y
를 실행하세요.실제로 방법 1에도 이 변수가 필요합니다.
3. 한 번에 두 개의 배열 요소를 허용하는 ES5 array.reduce 메서드를 사용하면 두 요소가 동일하지 않은 한 Y입니다. 으아악
하지만 이 방법은 깨질 수 없습니다怪我咯2017-06-30 09:59:33
for 루프를 사용하는 경우 for 외부에 플래그로 변수를 정의해야 합니다.
으아악ES6이 지원되는 경우 Set을 사용하여 배열의 중복을 제거한 다음 두 배열의 길이를 확인할 수 있습니다.
으아악欧阳克2017-06-30 09:59:33
"다른 값이 있습니다"라는 설명이 약간 모호한데, 배열에 다른 값과 다른 값이 있는 것으로 이해됩니다.