여기서 .slice (0)의 요점은 무엇입니까?
나는 이것을 발견했을 때 jQuery 소스를 연구하고 있었다 (v1.5 라인 2295) :
namespace = new RegExp("(^|\\.)" +
jQuery.map( namespaces.slice(0).sort(), fcleanup ).join("\\.(?:.*\\.)?") + "(\\.|$)");
내 질문은 왜 slice(0)
여기에서 사용 합니까?
sort()
호출 된 배열을 수정합니다. 다른 코드가 의존 할 수있는 항목을 변경하는 것은 그리 좋지 않습니다.
slice()
항상 새 배열을 반환합니다.에서 반환 된 배열 slice(0)
은 입력과 동일하므로 기본적으로 배열을 복제하는 저렴한 방법입니다.
arr.slice(0)
인덱스 0의 요소에서 마지막 요소까지 슬라이스를 가져 와서 원래 배열의 복사본을 만듭니다.
또한 배열과 유사한 객체를 배열로 변환하는 데 사용됩니다. 예를 들어 DOM NodeList
(와 같은 여러 DOM 메서드에 의해 반환 됨 getElementsByTagName
)은 배열이 아니지만 length
필드 가있는 배열과 같은 객체 이며 JavaScript에서 색인이 가능합니다. 배열로 변환하려면 다음을 자주 사용합니다.
var anchorArray = [].slice.call(document.getElementsByTagName('a'), 0)
slice (0) 은 원래 배열과 동일한 새 배열을 만듭니다. 여러 번 원래 어레이를 보존하고 새 어레이를 작성하려고합니다.
slice (1)을 사용하면 인덱스 위치 1부터 다른 배열이 생성됩니다.
비슷한 것들이 문자열에도 적용됩니다.
slice(0)
참조하는 기존 배열 (이 경우 네임 스페이스)의 배열을 반환 할 수 있습니다.
@Anon이 말한 것 외에도 :
이 slice()
메서드는 지정된 시작 인수에서 시작하여 지정된 끝 인수에서 끝나지만 포함하지 않는 요소를 선택합니다.
예 1 :
var fruits = ["Banana", "Orange", "Lemon", "Apple", "Mango"];
var citrus = fruits.slice(1, 3);
감귤류의 결과는 다음과 같습니다.
Orange,Lemon
예 2 :
var fruits = ["Banana", "Orange", "Lemon", "Apple", "Mango"];
var citrus = fruits.slice(-3, -1);
감귤류의 결과는 다음과 같습니다.
Lemon,Apple
참고 URL : https://stackoverflow.com/questions/5024085/whats-the-point-of-slice0-here
'development' 카테고리의 다른 글
화살은 무엇이며 어떻게 사용할 수 있습니까? (0) | 2020.11.20 |
---|---|
Android에서 실행중인 앱을 어떻게 확인할 수 있습니까? (0) | 2020.11.20 |
XCode 4.x에서 프로젝트를 종속성으로 추가 (0) | 2020.11.20 |
하나의 SQL 문에서 varchar [n] 필드의 크기를 얻는 방법은 무엇입니까? (0) | 2020.11.20 |
CultureInfo가있는 DateTime.Now.DayOfWeek.ToString () (0) | 2020.11.20 |