자바스크립트 배열LOGIN

자바스크립트 배열

JavaScript 배열

JavaScript 배열은 모든 데이터 유형을 포함할 수 있으며 인덱스를 통해 각 요소에 액세스할 수 있습니다.

배열의 길이를 얻으려면 길이 속성에 직접 액세스하세요:

var arr = [1, 2, 3.14, 'Hello', null, true];
arr.length; // 6

배열의 길이에 새 값을 직접 할당하면 배열의 크기가 변경됩니다.

var arr = [1, 2, 3];
arr.length; // 3
arr.length = 6;
arr; // arr变为[1, 2, 3, undefined, undefined, undefined]
arr.length = 2;
arr; // arr变为[1, 2]

Array는 인덱스를 통해 해당 요소를 새로운 값으로 수정할 수 있습니다. 따라서 Array의 인덱스에 값을 할당하면 Array가 직접 수정됩니다.

var arr = ['A', 'B', 'C'];
arr[1] = 99;
arr; // arr现在变为['A', 99, 'C']

인덱스가 인덱스를 통해 할당할 때 범위를 초과하면 배열 크기도 변경됩니다.

var arr = [1, 2, 3];
arr[5] = 'x';
arr; // arr变为[1, 2, 3, undefined, undefined, 'x']

대부분의 다른 프로그래밍 언어는 배열 크기에 대한 직접적인 변경을 허용하지 않으며 범위를 벗어납니다. - 인덱스에 대한 경계 액세스는 오류를 보고합니다. 그러나 JavaScript Array에는 오류가 없습니다. 코드 작성 시 배열의 크기를 직접 수정하는 것은 권장하지 않습니다. 인덱스에 접근할 때 인덱스가 범위를 벗어나지 않는지 확인하세요.

indexOf

String과 유사하게 Array는 indexOf()를 통해 지정된 요소의 위치를 ​​검색할 수도 있습니다.

var arr = [10, 20, '30', 'xyz'];
arr.indexOf(10); // 元素10的索引为0
arr.indexOf(20); // 元素20的索引为1
arr.indexOf(30); // 元素30没有找到,返回-1
arr.indexOf('30'); // 元素'30'的索引为2

참고, 숫자 30 문자열 '30'은 다른 요소입니다.

slice

slice()는 String의 하위 문자열() 버전입니다. Array의 일부 요소를 가로채서 새 Array를 반환합니다.

var arr = ['A', 'B', 'C', 'D', 'E', 'F', 'G'];
arr.slice(0, 3); // 从索引0开始,到索引3结束,但不包括索引3: ['A', 'B', 'C']
arr.slice(3); // 从索引3开始到结束: ['D', 'E', 'F', 'G']

slice()의 시작 및 끝 매개변수에는 시작 인덱스가 포함되고 끝 인덱스는 포함되지 않습니다.

slice()에 매개변수를 전달하지 않으면 처음부터 끝까지 모든 요소를 ​​가로챕니다. 이를 사용하면 배열을 쉽게 복사할 수 있습니다.

var arr = ['A', 'B', 'C', 'D', 'E', 'F', 'G'];
var aCopy = arr.slice();
aCopy; // ['A', 'B', 'C', 'D', 'E', 'F', 'G']
aCopy === arr; // false

push and pop

push()는 배열 끝에 여러 요소를 추가하고 pop()은 삭제합니다. Array의 마지막 요소:

var arr = [1, 2];
arr.push('A', 'B'); // 返回Array新的长度: 4
arr; // [1, 2, 'A', 'B']
arr.pop(); // pop()返回'B'
arr; // [1, 2, 'A']
arr.pop(); arr.pop(); arr.pop(); // 连续pop 3次
arr; // []
arr.pop(); // 空数组继续pop不会报错,而是返回undefined
arr; // []

unshift 및 Shift

Array의 헤드에 여러 요소를 추가하려면 unshift() 메서드인 Shift( ) 메서드는 배열의 첫 번째 요소를 삭제합니다.

var arr = [1, 2];
arr.unshift('A', 'B'); // 返回Array新的长度: 4
arr; // ['A', 'B', 1, 2]
arr.shift(); // 'A'
arr; // ['B', 1, 2]
arr.shift(); arr.shift(); arr.shift(); // 连续shift 3次
arr; // []
arr.shift(); // 空数组继续shift不会报错,而是返回undefined
arr; // []

sort

sort()는 현재 배열을 정렬할 수 있으며 현재 배열 위치를 직접 수정합니다. , 직접 호출하면 기본 순서에 따라 정렬됩니다:

var arr = ['B', 'C', 'A'];
arr.sort();
arr; // ['A', 'B', 'C']

우리가 지정한 순서대로 정렬할 수 있나요? 물론, 우리는 다음 기능에서 이에 대해 이야기할 것입니다.

reverse

reverse()는 전체 배열의 요소를 제거합니다. 즉, 역방향입니다.

var arr = ['one', 'two', 'three'];
arr.reverse(); 
arr; // ['three', 'two', 'one']

splice

splice() 메서드는 배열을 수정하기 위한 "범용 메서드"입니다. 지정된 인덱스에서 시작하여 여러 요소를 삭제한 다음 해당 위치에서 여러 요소를 추가할 수 있습니다.

var arr = ['Microsoft', 'Apple', 'Yahoo', 'AOL', 'Excite', 'Oracle'];
// 从索引2开始删除3个元素,然后再添加两个元素:
arr.splice(2, 3, 'Google', 'Facebook'); // 返回删除的元素 ['Yahoo', 'AOL', 'Excite']
arr; // ['Microsoft', 'Apple', 'Google', 'Facebook', 'Oracle']
// 只删除,不添加:
arr.splice(2, 2); // ['Google', 'Facebook']
arr; // ['Microsoft', 'Apple', 'Oracle']
// 只添加,不删除:
arr.splice(2, 0, 'Google', 'Facebook'); // 返回[],因为没有删除任何元素
arr; // ['Microsoft', 'Apple', 'Google', 'Facebook', 'Oracle']

concat

concat() 메서드 는 현재 배열을 다른 배열에 연결하고 새 배열을 반환합니다.

var arr = ['A', 'B', 'C'];
var added = arr.concat([1, 2, 3]);
added; // ['A', 'B', 'C', 1, 2, 3]
arr; // ['A', 'B', 'C']

concat( ) 메서드는 수정되지 않습니다. 현재 배열이지만 새 배열을 반환합니다.

실제로 concat() 메소드는 원하는 수의 요소와 배열을 수신하고 자동으로 배열을 분할한 다음 모두 새 배열에 추가할 수 있습니다.

var arr = ['A', 'B', 'C'];
arr.concat(1, 2, [3, 4]); // ['A', 'B', 'C', 1, 2, 3, 4]

join

join() 메서드는 현재 배열의 각 요소를 지정된 문자열과 연결한 다음 연결된 문자열을 반환하는 매우 실용적인 메서드입니다.

var arr = ['A', 'B', 'C', 1, 2, 3];
arr.join('-'); // 'A-B-C-1-2-3'

Array의 요소가 문자열이 아닌 경우 연결하기 전에 자동으로 문자열로 변환됩니다.

다차원 배열

배열의 요소가 배열인 경우 다차원 배열을 구성할 수 있습니다. 예:

var arr = [[1, 2, 3], [400, 500, 600], '-'];

위 배열에는 3개의 요소가 포함되어 있으며 그 중 처음 두 개는 그 자체가 배열입니다.


다음 섹션
<html> <body> <script type="text/javascript"> var arr = new Array(6) arr[0] = "George" arr[1] = "John" arr[2] = "Thomas" arr[3] = "James" arr[4] = "Adrew" arr[5] = "Martin" document.write(arr + "<br />") document.write(arr.sort()) </script> </body> </html>
코스웨어