마법의 회전 또는 배열 뒤집기 기능을 먼저 소개하고 싶습니다. 먼저 예를 살펴보겠습니다.
var data = [1, 2, 3, 4, 5]; rotate(data, 1) // => [5, 1, 2, 3, 4] rotate(data, 2) // => [4, 5, 1, 2, 3] rotate(data, 3) // => [3, 4, 5, 1, 2] rotate(data, 4) // => [2, 3, 4, 5, 1] rotate(data, 5) // => [1, 2, 3, 4, 5]
알겠습니다. 방법은 없나요? 안 보이셔도 상관없으니 설명드리겠습니다.
첫 번째 rotate(data,1)을 예로 들면, 첫 번째부터 두 번째, 마지막까지의 모든 요소가 한 자리 오른쪽으로 이동한 것과 동일하며, 마지막부터 마지막까지 요소 요소가 반달 호를 그리며 첫 번째 위치에 도달했습니다.
그리고 rotate(data,2)는 rotate(data,1)을 기반으로 동일한 작업을 수행합니다.
rotate(data,3)rotate(data,2) 기준...
이것도 아직 끝나지 않았습니다 아직 회전 함수에는 더 강력한 기능이 있습니다. 음수를 전달하려고 하면 어떻게 될까요?
rotate(data, -1) // => [2, 3, 4, 5, 1] rotate(data, -2) // => [3, 4, 5, 1, 2] rotate(data, -3) // => [4, 5, 1, 2, 3] rotate(data, -4) // => [5, 1, 2, 3, 4] rotate(data, -5) // => [1, 2, 3, 4, 5]
주의 깊게 살펴보면 이것이 양수 회전의 반대 과정이라는 것을 곧 알게 될 것입니다.
0이 전달되면 어떤 반응이 나올까요?
rotate(data, 0) // => [1, 2, 3, 4, 5]
0번 뒤집으면 아무 일도 일어나지 않습니까? ^_^
이 기능은 거의 모든 작업을 수행할 수 있습니다.
숫자 배열을 사용할 수 있으며, 다른 객체 배열도 뒤집을 수 있습니다.
몇번이든 뒤집어보세요! 수만 번이라도 와도!
자, 마법 같은 기능을 많이 봤으니 어떻게 구현해야 할지 생각해 봅시다.
양수, 음수, 0의 세 가지 기본 상황이 있으므로 하나씩 물리쳐봅시다!
양수의 경우 다음 함수를 구체적으로 작성합니다.
rotate(['a', 'b', 'c'], 1) // => ['c', 'a', 'b'] rotate([1.0, 2.0, 3.0], 1) // => [3.0, 1.0, 2.0] rotate([true, true, false], 1) // => [false, true, true]
그런 다음 음수의 경우 반대 함수와 함께 이 함수를 사용합니다.
var data = [1, 2, 3, 4, 5] rotate(data, 7) // => [4, 5, 1, 2, 3] rotate(data, 11) // => [5, 1, 2, 3, 4] rotate(data, 12478) // => [3, 4, 5, 1, 2]
마지막으로 통합하면 회전 기능이 나옵니다.
if(typeof Array.prototype.shiftRight !== "function"){ Array.prototype.shiftRight = function(n){ while(n--){ this.unshift(this.pop()); } }; }
위 내용은 is Magic 회전 기능의 내용, 더 많은 관련 내용을 보려면 PHP 중국어 웹사이트(www.php.cn)에 주목하세요!