배열 배열
1. 소개
배열은 주문 된 값 모음입니다. 각 값은 요소라고하며, 각 요소는 배열에 위치가 있으며 인덱스라고하는 숫자로 표시됩니다. JavaScript 배열은 유형이 없습니다. 배열 요소는 모든 유형 일 수 있으며 동일한 배열의 다른 요소도 다른 유형을 가질 수 있습니다. -"JavaScript에 대한 권위 가이드 (여섯 번째 판)"
2. 정의
코드 사본은 다음과 같습니다.
var names = new Array ( "Zhang San", "Li Si", "Wang Wu");
//또는
var names = [ "Zhang San", "Li Si", "Wang Wu"];
3. 속성
길이 : 배열의 요소의 길이를 나타냅니다.
4. 예제 방법
일반적인 방법 :
1) UNSHIFT () : 배열 헤드에 요소 삽입
2) shift () : 배열의 첫 번째 요소를 제거하고 반환합니다.
3) 푸시 () : 배열 끝에 요소 삽입
4) 팝 () : 배열의 마지막 요소를 제거하고 반환합니다.
4.1 concat () : 요소를 배열에 연결합니다. 원래 배열은 수정되지 않으며 새 배열이 반환됩니다.
매개 변수 :
value1, value2 ... valuen : 모든 값
반품 값 :
{array} 원래 배열과 새로 추가 된 요소가 포함 된 새 배열.
예:
코드 사본은 다음과 같습니다.
var demoarray = [ 'a', 'b', 'c'];
var demoarray2 = demoarray.concat ( 'e');
Console.log (DemoArray); // => demoArray : [ 'a', 'b', 'c'] 원래 배열은 변경되지 않습니다
Console.log (DemoArray2); // => [ 'a', 'b', 'c', 'e']]]]
4.2 Every () : 요소를 횡단하여 각 요소가 진실인지 확인합니다.
매개 변수 :
① 함수 (값, 색인, self) {} : 각 요소는이 함수를 사용하여 그것이 사실인지 확인합니다. 하나가 거짓이라고 판단되면 순회가 즉시 종료됩니다.
값 : 배열의 요소
색인 : 요소 번호
자기 : 배열 자체
반품 값 :
{boolean} : 각 요소가 참인 경우에만 true를 반환합니다. 거짓이면 false를 반환하십시오.
예:
코드 사본은 다음과 같습니다.
var demoarray = [1, 2, 3];
var rs = demoarray.every (함수 (값, 색인, 자체) {
반환 값> 0;
});
Console.log (Rs); // => 참
4.3 Filter () : 요소를 차례로 통과하고 기준을 충족하는 요소가 포함 된 새 배열을 반환합니다.
매개 변수 :
function (value, index, self) {} : 각 요소는이 함수를 차례로 호출하여 기준을 충족하는 요소를 포함하는 새로운 배열을 반환합니다.
값 : 배열의 요소
색인 : 요소 번호
자기 : 배열 자체
반품 값 :
{array} 기준과 일치하는 요소가 포함 된 새 배열
예:
코드 사본은 다음과 같습니다.
var demoarray = [1, 2, 3];
var rs = demoarray.filter (함수 (value, index, self) {
반환 값> 0;
});
Console.log (Rs); // => [1, 2, 3]
4.4 foreach () : 순서대로 트래버스 요소와 지정된 함수를 실행합니다. 반환 값이 없습니다.
매개 변수 :
function (value, index, self) {} : 각 요소는이 함수를 차례로 호출합니다
값 : 배열의 요소
색인 : 요소 번호
자기 : 배열 자체
반환 값 : 없음
예:
코드 사본은 다음과 같습니다.
var demoarray = [1, 2, 3];
demoarray.foreach (함수 (값, 색인, 자체) {
Console.log (값); // => 순서대로 출력 : 1 2 3
});
4.5 indexof () : 배열에서 일치 요소를 찾으십시오. 일치하는 요소가 없으면 -1을 반환하십시오. 검색 할 때 "==="연산자를 사용하므로 1과 '1'을 구별해야합니다.
매개 변수 :
value : 배열에서 찾을 수있는 값.
start : 검색을 시작하는 일련 번호 위치는 생략되면 0입니다.
반품 값 :
{int} : 배열에서 첫 번째 일치하는 값을 반환합니다. 존재하지 않으면 -1을 반환하십시오
예:
코드 사본은 다음과 같습니다.
[ 'a', 'b', 'c']. indexof ( 'a'); // => 0
[ 'a', 'b', 'c']. indexof ( 'a', 1); // =>-1
[ 'a', 'b', 'c']. indexof ( 'd'); // =>-1
[1, 2, 3]. indexof ( '1'); // => -1 : 사용 된 '==='일치 방법
4.6 join () : 분리기를 통해 배열의 모든 요소를 문자열로 스플릿합니다.
매개 변수 :
①sparator {String} : 각 요소 사이의 분리기. 생략하면 기본적으로 영어 쉼표로 분리됩니다.
반품 값 :
{string} : 각 요소가 분리기로서 스파이터를 가진 문자열.
예:
코드 사본은 다음과 같습니다.
[ 'a', 'b', 'c']. join (); // => 'A, B, C'
[ 'a', 'b', 'c']. join ( '-'); // => 'AB-C'
4.7 LastIndexof : 어레이에서 일치하는 요소를 반대로 조회합니다. 일치하는 요소가 없으면 -1을 반환하십시오. 검색 할 때 "==="연산자를 사용하므로 1과 '1'을 구별해야합니다.
매개 변수 :
value : 배열에서 찾을 수있는 값.
start : 검색을 시작하는 시퀀스 번호의 위치. 생략되면 마지막 요소에서 검색을 시작하십시오.
반품 값 :
{int} : 오른쪽에서 왼쪽으로 배열에서 첫 번째 일치하는 값을 찾기 시작합니다. 존재하지 않으면 -1을 반환하십시오
예:
코드 사본은 다음과 같습니다.
[ 'a', 'b', 'c']. lastindexof ( 'a'); // => 0
[ 'a', 'b', 'c']. lastindexof ( 'a', 1); // => 0
[ 'a', 'b', 'c']. lastindexof ( 'd'); // => -1
[1, 2, 3] .lastindexof ( '1'); // => -1 : 사용 된 '==='일치 방법
4.8 Map () : 각 요소를 순서대로 반복하고 계산하고 계산 된 요소 배열을 반환합니다.
매개 변수 :
① 함수 (값, 색인, 자체) {} : 각 요소는이 기능을 호출하여 계산 된 요소를 반환합니다.
값 : 배열의 요소
색인 : 요소 번호
자기 : 배열 자체
반품 값 :
{array} 좋은 요소조차 포함 된 새로운 배열
예:
코드 사본은 다음과 같습니다.
[1, 2, 3] .map (함수 (값, 색인, 자체) {
반환 값 * 2;
}); // => [2, 4, 6]
4.9 pop () : 배열의 마지막 요소를 제거하고 반환합니다.
매개 변수 : 없음
반품 값 :
{object} 배열의 마지막 요소; 배열이 비어 있으면 정의되지 않은 반환
예:
코드 사본은 다음과 같습니다.
var demoarray = [ 'a', 'b', 'c'];
demoarray.pop (); // => c
demoarray.pop (); // => b
demoarray.pop (); // => a
demoarray.pop (); // => 정의되지 않았습니다
4.10 푸시 () : 배열 끝에 요소 추가
매개 변수 :
value1, value2 ... valuen : 배열 끝에 여러 값을 추가하십시오.
반품 값 :
{int} 배열의 새로운 길이
예:
코드 사본은 다음과 같습니다.
var demoarray = [ 'a', 'b', 'c'];
demoarray.push ( 'd'); // => 4, demoarray : [ 'a', 'b', 'c', 'd']]]
demoarray.push ( 'e', 'f'); // => 6, demoarray : [ 'a', 'b', 'c', 'd', 'e', 'f']]]]
Console.log (DemoArray); // => [ 'a', 'b', 'c', 'd', 'e', 'f']]]
4.11 reverse () : 배열 요소의 순서를 뒤집습니다.
매개 변수 : 없음
반환 값 : 없음 (원래 배열의 요소 순서).
예:
코드 사본은 다음과 같습니다.
var demoarray = [ 'a', 'b', 'c', 'd', 'e'];
demoarray.reverse ();
Console.log (DemoArray); // => [ "e", "d", "c", "b", "a"]
4.12 Shift () : 배열의 첫 번째 요소를 제거하고 반환합니다.
매개 변수 : 없음
반품 값 :
{object} 배열의 첫 번째 요소; 배열이 비어 있으면 정의되지 않은 것이 반환됩니다.
예:
코드 사본은 다음과 같습니다.
var demoarray = [ 'a', 'b', 'c'];
demoarray.shift (); // => a
demoarray.shift (); // => b
demoarray.shift (); // => c
demoarray.shift (); // => 정의되지 않았습니다
4.13 슬라이스 (startIndex, endIndex) : 배열의 일부를 반환합니다.
매개 변수 :
startIndex : 처음의 시퀀스 번호; 음수 인 경우 계산이 끝에서 시작되고 -1은 마지막 요소를 나타내고 -2는 두 번째 요소 등을 나타냅니다.
indindex : 끝에있는 요소의 마지막 시퀀스 번호는 지정되지 않으면 끝이 끝입니다. 차단 된 요소는 여기서 시퀀스 번호를 갖는 요소를 포함하지 않으며 엔딩은 여기서 시퀀스 번호를 갖는 이전 요소입니다.
반품 값 :
{array} startIndex에서 endIndex의 이전 요소로 모든 요소를 포함하는 새 배열.
예:
코드 사본은 다음과 같습니다.
[1, 2, 3, 4, 5, 6] .slice (); // => [1, 2, 3, 4, 5, 6]
[1, 2, 3, 4, 5, 6] .slice (1); // => [2, 3, 4, 5, 6] : 일련 번호 1에서 시작하여 1
[1, 2, 3, 4, 5, 6] .slice (0, 4); // => [1, 2, 3, 4] : 일련 번호 0의 요소를 일련 번호 3으로 가로 채립니다 (일련 번호 4의 이전 1 개)
[1, 2, 3, 4, 5, 6] .slice (-2); // => [5, 6] : 다음 2 가지 요소를 가로 채십시오
4.14 Sort (opt_orderFunc) : 특정 규칙에 따라 정렬하십시오
매개 변수 :
opt_orderfunc (v1, v2) {function} : 선택적 정렬 규칙 함수. 생략하면 요소의 글자는 작게 정렬됩니다.
V1 : 이전 요소가 횡단됩니다.
v2 : 다음 요소가 가로 져 있습니다.
정렬 규칙 :
v1과 v2를 비교하고 숫자를 반환하여 v1과 v2의 분류 규칙을 나타냅니다.
0 : V1 미만은 V2보다 작고 V1은 v2보다 앞서 있습니다.
0 : v1과 같고 V2와 같고 V1은 v2보다 앞서 있습니다.
0보다 큰 V1은 V2보다 크고 V1은 v2 뒤에 있습니다.
반환 값 : 없음 (원래 배열에서 작업 정렬).
예:
코드 사본은 다음과 같습니다.
[1, 3, 5, 2, 4, 11, 22] .sort (); // => [1, 11, 2, 22, 3, 4, 5] : 모든 요소가 문자로 변환되고 11의 문자는 2 이전입니다.
[1, 3, 5, 2, 4, 11, 22] .sort (함수 (v1, v2) {
반환 v1 -v2;
}); // => [1, 2, 3, 4, 5, 11, 22] : 작은 것에서 큰 것으로 정렬
[1, 3, 5, 2, 4, 11, 22] .sort (함수 (v1, v2) {
반환 - (v1 -v2); // 역전, 크게 변환 할 수 있습니다
}); // => [22, 11, 5, 4, 3, 2, 1]
4.15 Splice () : 배열 요소를 삽입하고 삭제합니다
매개 변수 :
① 시작 {int} : 삽입, 삭제 또는 교체를 시작할 시작 시퀀스 번호.
deleteCount {int} : 삭제할 요소 수는 시작부터 계산을 시작합니다.
value1, value2 ... valuen {object} : 옵션 매개 변수, 삽입 할 요소를 나타내며 시작부터 삽입하기 시작합니다. 매개 변수 ②가 0이 아닌 경우 먼저 삭제 작업을 수행 한 다음 삽입 작업을 수행하십시오.
반품 값 :
{array} 삭제 된 요소가 포함 된 새 배열을 반환합니다. 매개 변수 ②가 0이면 요소가 삭제되지 않고 빈 배열이 반환되었음을 의미합니다.
예:
코드 사본은 다음과 같습니다.
// 1. 삭제
var demoarray = [ 'a', 'b', 'c', 'd', 'e'];
var demoarray2 = demoarray.splice (0, 2); // 시퀀스 번호에서 0에서 시작하는 2 개의 요소를 삭제하고 삭제 된 요소가 포함 된 배열을 반환합니다 : [ 'a', 'b']
Console.log (DemoArray2); // => [ 'a', 'b']
Console.log (DemoArray); // => [ 'c', 'd', 'e']]
// 2. 삽입
var demoarray = [ 'a', 'b', 'c', 'd', 'e'];
var demoarray2 = demoarray.splice (0, 0, '1', '2', '3'); // ② 매개 변수는 0이고 빈 배열을 반환합니다.
Console.log (DemoArray2); // => []
Console.log (DemoArray); // => [ '1', '2', '3', 'a', 'b', 'c', 'd', 'e']]]]
// 3. 먼저 삭제 한 다음 삽입합니다
var demoarray = [ 'a', 'b', 'c', 'd', 'e'];
// ② 매개 변수가 0이 아닌 경우, 먼저 삭제 작업을 수행합니다 (0에서 시작하는 시퀀스 번호로 4 가지 요소를 삭제하고 삭제 된 요소가 포함 된 배열을 반환) 한 다음 삽입 작업을 수행하십시오.
var demoarray2 = demoarray.splice (0, 4, '1', '2', '3');
Console.log (DemoArray2); // => [ 'a', 'b', 'c', 'd']
Console.log (DemoArray); // => [ '1', '2', '3', 'a', 'b', 'c', 'd', 'e']]]]
4.16 TOSTRING () : 영어 쉼표를 통해 배열의 모든 요소를 문자열로 스티칭합니다.
매개 변수 : 없음
반품 값 :
{string} 배열의 모든 요소는 영어 쉼표로 문자열로 스 플라이 싱되고 반환됩니다. 매개 변수없이 join () 메소드를 호출하는 것도 마찬가지입니다.
예:
코드 사본은 다음과 같습니다.
[1, 2, 3, 4, 5] .ToString (); // => '1,2,3,4,5'
[ 'a', 'b', 'c', 'd', 'e']. tostring (); // => 'A, B, C, D, E'
4.17 UNSHIFT () : 배열 헤드에 요소 삽입
매개 변수 :
value1, value2 ... valuen : 배열의 헤더에 여러 값을 추가합니다.
반품 값 :
{int} 배열의 새로운 길이
예:
코드 사본은 다음과 같습니다.
var demoarray = [];
demoarray.unshift ( 'a'); // => demoarray : [ 'a']
demoarray.unshift ( 'b'); // => demoarray : [ 'b', 'a']
DemoArray.unshift ( 'C'); // => demoarray : [ 'c', 'b', 'a']]]
demoarray.unshift ( 'd'); // => demoarray : [ 'd', 'c', 'b', 'a']]]
demoarray.unshift ( 'e'); // => demoarray : [ 'e', 'd', 'c', 'b', 'a']]]]
5. 정적 방법
5.1 Array.isArray () : 객체가 배열인지 결정합니다
매개 변수 :
value {object} : 모든 객체
반품 값 :
{boolean} 판결 결과를 반환합니다. 사실 일 때, 그것은 객체가 배열임을 의미합니다. False 일 때 객체가 배열이 아님을 의미합니다.
예:
코드 사본은 다음과 같습니다.
Array.isArray ([]); // => 참
Array.isarray ([ 'a', 'b', 'c']); // => 참
Array.isArray ( 'a'); // => false
Array.isarray ( '[1, 2, 3]'); // => false
6. 실용적 운영
6.1 지수
설명 : 각 요소는 배열에 위치가 있으며 인덱스라고하는 숫자로 표시됩니다. 인덱스는 0에서 시작합니다. 즉, 첫 번째 요소의 인덱스는 0이고, 두 번째 요소의 인덱스는 1 등입니다.
배열에 존재하지 않는 인덱스를 얻을 때 정의되지 않은 것이 반환됩니다.
예:
코드 사본은 다음과 같습니다.
var demoarray = [ 'a', 'b', 'c', 'd', 'e'];
Demoarray [0]; // => 첫 번째 요소 얻기 : 'a'
DemoArray [0] = 1; // 첫 번째 요소를 1로 설정합니다
Console.log (DemoArray); // => demoArray : [1, 'b', 'c', 'd', 'e']]]]
Console.log (DemoArray [9]); // => 정의되지 않은 : 획득 된 인덱스가 존재하지 않을 때 정의되지 않은 반환
진술의 경우 6.2
참고 : for 문을 통해 배열을 하나씩 횡단 할 수 있습니다.
예:
코드 사본은 다음과 같습니다.
var demoarray = [ 'a', 'b', 'c', 'd', 'e'];
for (var i = 0, 길이 = demoarray.length; i <length; i ++) {
Console.log (DemoArray [i]); // => 배열의 출력 요소는 하나씩
}
6.3 얕은 사본
참고 : 배열 유형은 참조 유형입니다. 배열 A가 배열 B에 복사되면 요소 수정이 배열 B로 만들어지고 배열 A도 수정됩니다.
예:
코드 사본은 다음과 같습니다.
var demoarraya = [ 'a', 'b', 'c', 'd', 'e'];
var demoarrayb = demoarraya; // 배열 A를 배열에 할당 b
demoarrayb [0] = 1; // 배열의 요소 수정 b
Console.log (Demoarraya); // => [1, 'b', 'c', 'd', 'e'] : 배열 A의 요소도 변경되었습니다.
6.4 딥 카피
참고 : concat () 메소드를 사용하여 새 배열을 반환하십시오. 얕은 복사를 방지하고 배열 B에서 요소 수정 작업을 수행하며 배열 A는 변경되지 않습니다.
예:
코드 사본은 다음과 같습니다.
var demoarraya = [ 'a', 'b', 'c', 'd', 'e'];
var demoarrayb = demoarraya.concat (); // concat () 메소드를 사용하여 새 배열을 반환합니다
demoarrayb [0] = 1; // 배열의 요소를 수정하십시오. b
Console.log (Demoarraya); // => [ 'a', 'b', 'c', 'd', 'e'] : 배열 A의 요소가 변경되지 않았습니다.
console.log (demoarrayb); // => [1, 'b', 'c', 'd', 'e'] : 배열 B의 요소가 변경되었습니다.