나는 오랫동안 JS를 사용해 왔지만 JS의 배열 형태를 결코 탐구 한 적이 없습니다. 때때로 사용하면 간단한 string.split (char)입니다. 이 기간 동안 수행 한 프로젝트는 많은 배열을 사용합니다. 나는 JS의 마스터라고 생각하고 시작하는 방법을 전혀 모른다. 나는 잔인하고 배울 것입니다! 헤헤. 학습 후 JS 배열의 기능이 VB 및 C#보다 훨씬 강력하고 훨씬 강력하다는 것을 깨달았습니다. 천천히 살펴 보겠습니다.
1. 배열 생성
var arrayobj = new Array (); // 배열 생성 var arrayobj = new Array ([size]); // 배열을 생성하고 길이를 지정하고, 상한이 아니며, 길이 var arrayobj = new Array ([element0 [, element1 [, ... [, elementn]]]]); // 배열을 만들고 값을 할당합니다
두 번째 방법은 길이를 지정하는 배열을 생성하지만 실제로는 모든 경우에 배열이 더 길어지고, 즉 길이가 지정 되더라도 요소는 여전히 지정된 길이 외부에 저장 될 수 있습니다. 참고 : 길이는 그에 따라 변경됩니다.
2. 배열 요소에 대한 액세스
var testgetArvalue = arrayobj [1]; // 배열의 요소 값을 가져옵니다
ArrayoBj [1] = "이것은 새로운 값입니다"; // 배열 요소에 새 값을 할당합니다
3. 배열 요소 추가
암호
배열. 푸시 ([item1 [item2 [... [itemn]]); // 배열 끝에 하나 이상의 새로운 요소를 추가하고 배열의 새로운 길이를 반환합니다 ([item1 [item1 [item1 [item1 [... [itemn]]]); // 배열 시작에 하나 이상의 새로운 요소를 추가 할 것입니다. arrayobj.splice (insertpos, 0, [item1 [, item1 [, item1 [, itemn]]]); // 하나 이상의 새로운 요소를 배열의 지정된 위치에 삽입하면 삽입 위치의 요소가 자동으로 뒤로 이동하고 "" "를 반환합니다.
4. 배열 요소의 삭제
ArrayoBj.pop (); // 마지막 요소를 제거하고 요소 값 value arrayobj.shift ()를 반환합니다. // 마지막 요소를 제거하고 요소 값을 반환하면 배열의 요소가 자동으로 ArrayObj.splice (deletepos, deleteCount); // 지정된 위치에서 시작하여 지정된 DeletEcount 수의 요소를 삭제하고 배열 양식에서 제거 된 요소를 반환합니다.
5. 배열의 차단 및 병합
arrayobj.slice (start, [end]); // 배열의 일부를 배열 형태로 반환하면 끝에 해당하는 요소가 포함되지 않습니다. 끝이 생략되면 시작 후 모든 요소가 복사됩니다.
arrayobj.concat ([item1 [, item2 [, itemn]]]); // 여러 배열 (문자열 또는 배열 및 문자열의 혼합물)을 배열에 연결하고 연결된 새 배열을 반환합니다.
6. 배열 사본
arrayobj.slice (0); // 배열의 복사기 배열을 반환하고, 지적하지 않은 새로운 배열입니다.
ArrayoBj.concat (); // 배열의 복사기 배열을 반환하고, 지적하지 않은 새로운 배열입니다.
7. 배열 요소를 정렬하십시오
ArrayoBj.reverse (); // 요소를 뒤집습니다 (첫 번째 요소는 마지막으로 순위가 매겨지고 마지막 것은 첫 번째 순위) 및 배열 주소를 반환합니다.
ArrayoBj.sort (); // 배열 요소를 정렬하고 배열 주소를 반환합니다
8. 배열 요소의 스트링
arrayobj.join (분리기); // 배열의 각 요소 값을 함께 연결하는 문자열을 반환합니다.
Tolocalestring, Tostring, Valueof : 그것은 자주 사용되지 않는 특별한 조인 사용으로 간주 될 수 있습니다.
2. 배열 객체의 세 가지 속성
1. 길이 속성
길이 속성은 배열의 길이, 즉 그 안의 요소 수를 나타냅니다. 배열의 인덱스는 항상 0에서 시작하기 때문에 배열의 상한 및 하한은 각각 0과 길이 -1입니다. 대부분의 다른 언어와 달리 JavaScript 배열의 길이 속성은 변동성이있어 특별한주의가 필요합니다. 길이 속성이 더 크게 설정되면 전체 배열의 상태가 실제로 변하지 않으며 길이 속성 만 커집니다. 길이 속성이 원래보다 작아지면 원래 배열에서 인덱스가있는 요소의 모든 값이 길이와 동일합니다. 다음은 길이 속성 변경을 보여주는 예입니다.
암호
var arr = [12,23,5,25,98,76,54,56,76]; // 배열 경보 정의 (arr.length); // 배열의 길이를 10 arr.length = 12로 표시합니다. // 배열 경보의 길이를 늘리십시오 (arr.length); // 배열의 길이가 12 arr가되었음을 보여줍니다 (ARR [8]). // 9 번째 요소의 값을 표시, 56 arr.length = 5; // 배열의 길이를 5로 줄이고 인덱스가 또는 5를 초과하는 요소를 5로 줄입니다 (ARR [8]). // 9 번째 요소가 "정의되지 않은"arr.length = 10이되었음을 보여줍니다. // 배열의 길이를 10 arr로 복원합니다 (ARR [8]); // 길이가 10으로 복원되지만 9 번째 요소를 철회 할 수 없으며 "정의되지 않은"을 보여줍니다.
위 코드에서 길이 속성의 속성을 명확하게 볼 수 있습니다. 그러나 길이 객체를 명시 적으로 설정할 수있을뿐만 아니라 암시 적으로 수정 될 수도 있습니다. 선언되지 않은 변수는 JavaScript에서 사용할 수 있습니다. 마찬가지로, 정의되지 않은 배열 요소 (인덱스가 길이를 초과하거나 길이와 같은 요소를 참조 함). 이 시점에서 길이 속성의 값은 중고 요소 인덱스 + 1의 값으로 설정됩니다. 예를 들어 다음 코드는 다음과 같습니다.
var arr = [12,23,5,25,98,76,54,56,76]; Alert (Ar
코드는 먼저 10 개의 숫자가 포함 된 배열을 정의합니다. 경고 명령문을 통해 길이는 10이라는 것을 알 수 있습니다. 그러면 15 인 지수가있는 요소가 사용되고 값은 15, 즉 ARR [15] = 34입니다. 현재 Alert 문을 사용하여 배열의 길이는 출력이며 결과는 16입니다. 어쨌든, 이것은 강력하게 입력 한 프로그래밍에 익숙한 개발자에게 놀라운 기능입니다. 실제로, 새로운 배열 ()의 형태를 사용하여 생성 된 배열의 초기 길이는 0입니다. 배열의 길이를 변경하는 정의되지 않은 요소의 작동입니다.
위의 소개에서 길이 속성이 너무 마법이어서 배열의 용량을 쉽게 증가 시키거나 줄일 수 있음을 알 수 있습니다. 따라서 길이 속성에 대한 심층적 인 이해는 개발 과정에서 유연하게 적용하는 데 도움이됩니다.
2. 프로토 타입 속성
객체 유형 프로토 타입에 대한 참조를 반환합니다. 프로토 타입 속성은 객체에 의해 공유됩니다.
ObjectName.prototype
ObjectName 매개 변수는 객체 객체의 이름입니다.
설명 :
프로토 타입 속성을 사용하여 객체 클래스의 기본 기능 세트를 제공하십시오. 객체의 새로운 인스턴스는 객체 프로토 타입을 제공하는 작업을 "상속"합니다.
배열 객체의 경우 다음 예제를 사용하여 프로토 타입 속성의 목적을 설명하십시오.
배열 객체에 메소드를 추가하여 배열의 최대 요소 값을 반환합니다. 이를 달성하려면 함수를 선언하고 배열에 추가하여 사용하십시오.
암호
함수 array_max () {var i, max = this [0]; for (i = 1; i <this.length; i ++) {if (max <this [i]) max = this [i];} return max;} array.prototyp.max = array_max (var x = new array (1, 2, 3, 4, 5, 6);이 코드가 실행 된 후 y는 배열 x 또는 6의 최대 값을 저장합니다.
3. 생성자 속성
객체의 생성을 나타내는 함수.
object.constructor // 객체는 객체 또는 함수의 이름입니다.
설명 : 생성자 속성은 프로토 타입이있는 모든 객체의 구성원입니다. 여기에는 글로벌 및 수학 개체를 제외한 모든 jscript-inherited 객체가 포함됩니다. 생성자 속성은 특정 객체 인스턴스를 구성하는 함수에 대한 참조를 보유합니다.
예를 들어:
x = 새 문자열 ( "hi");
if (x.constructor == string) // 프로세스 (조건은 true).
또는
기능 myfunc {
// 기능 본체.
}
y = 새로운 myfunc;
if (y.constructor == myfunc) // 프로세스 (조건은 참).
배열 :
y = 새로운 배열 ();