이 예제는 JavaScript 배열의 일반적인 작동 기술을 요약합니다. 참조를 위해 공유하십시오. 세부 사항은 다음과 같습니다.
머리말
모든 사람이 $ .isarray, _.some, _.find 및 기타 방법과 같은 jQuery 또는 밑줄과 같은 클래스 라이브러리에서 일반적으로 사용되는 배열 관련 작업을 사용하는 데 익숙하다고 생각합니다. 기본 JS 배열 작업을위한 랩퍼가 조금 더 있습니다.
여기서는 주로 JavaScript 배열 작업을위한 공통 API를 요약합니다. 모든 사람이 프로그램 문제를 해결하는 것이 매우 도움이 될 것이라고 생각합니다.
1. 자연
JavaScript의 배열은 특수 객체이며 오프셋을 나타내는 데 사용되는 인덱스는 객체의 속성이며 인덱스는 정수 일 수 있습니다. 그러나 JavaScript 객체의 속성 이름은 문자열이어야하기 때문에 이러한 숫자 인덱스는 내부적으로 문자열 유형으로 변환됩니다.
2. 운영
1 배열 유형을 결정합니다
다음과 같이 코드를 복사하십시오. var array0 = []; // 문자
var array1 = new Array (); // 생성자
// 참고 : Array.isArray 메소드는 IE6/7/8에서 지원되지 않습니다.
Alert (Array.isArray (Array0));
// 호환성을 고려하고 사용할 수 있습니다
경고 (배열의 Array1 인스턴스);
// 또는
Alert (Object.Prototype.toString.call (Array1) === '[Object Array]');
2 배열 및 문자열
매우 간단 : 배열에서 문자열로 변환하고 조인을 사용하십시오. 문자열에서 배열로 변환하고 분할을 사용하십시오.
다음과 같이 코드를 복사하십시오.
console.log ([ 'hello', 'world']. join ( ',')); // 안녕하세요, 세상
// 분할 - split을 사용하여 문자열에서 배열로 변환
Console.log ( 'hello world'.split (' ')); // [ "hello", "world"]
3 요소를 찾으십시오
모든 사람이 종종 문자열 유형 indexof를 사용한다고 생각하지만 배열의 인덱스가 요소를 찾는 데 사용될 수 있다는 것을 거의 알지 못합니다.
다음과 같이 코드를 복사하십시오 : // indexof- 찾기 요소
console.log ([ 'abc', 'bcd', 'cde']. indexof ( 'bcd')); // 1
//
var objinarray = [
{
이름 : 'King',
패스 : '123'
},
{
이름 : 'King1',
패스 : '234'
}
];
console.log (objinarray.indexof ({{
이름 : 'King',
패스 : '123'
}); // -1
var elementofarray = objinarray [0];
console.log (objinarray.indexof (elementofarray)); // 0
위에서, 우리는 객체를 포함하는 배열의 경우, indexof 메소드가 깊은 비교를 통해 해당 검색 결과를 얻지 못하지만, 참조를 해당 요소와 비교하는 것을 볼 수 있습니다.
4 배열 연결
CONCAT를 사용할 때는 CONCAT를 사용한 후 새 배열이 생성됩니다.
코드 사본은 다음과 같습니다. var array1 = [1, 2, 3];
var array2 = [4, 5, 6];
var array3 = array1.concat (array2); // 배열 연결을 구현 한 후 새 배열이 생성됩니다.
Console.log (Array3);
5 범주의 목록 작업
요소를 추가하려면 각각 푸시 및 미확인을 사용하고 요소를 제거하려면 각각 POP 및 SHIFT를 사용할 수 있습니다.
다음과 같이 코드를 복사하십시오
var array = [2, 3, 4, 5];
// 배열 끝에 추가합니다
array.push (6);
Console.log (배열); // [2, 3, 4, 5, 6]
// 배열 헤더에 추가합니다
Array.unshift (1);
Console.log (배열); // [1, 2, 3, 4, 5, 6]
// 마지막 요소를 제거합니다
var ElementOfPop = array.pop ();
Console.log (ElementOfPop); // 6
Console.log (배열); // [1, 2, 3, 4, 5]
// 첫 번째 요소를 제거합니다
var ElementOfShift = array.shift ();
Console.log (ElementOfShift); // 1
Console.log (배열); // [2, 3, 4, 5]
6 스플 라이스 방법
두 가지 주요 용도 :
① 배열 중간에서 요소를 추가 및 삭제합니다.
② 원래 배열에서 새 배열을 얻습니다
물론 두 가지 용도는 하나의 가스로 합성됩니다. 일부 시나리오는 목적에 중점을두고 다른 시나리오는 목적 2에 중점을 둡니다.
배열의 중간 위치에서 요소를 추가하고 삭제하십시오. 스플 라이스 방법은 배열에 요소를 추가합니다. 다음 매개 변수가 필요합니다.
start Index (즉, 요소 추가를 시작하려는 곳)
② 삭제 해야하는 요소의 수 또는 추출 된 요소 수 (요소를 추가 할 때 매개 변수가 0으로 설정됨)
③ 배열에 추가하려는 요소
코드 사본은 다음과 같습니다. var nums = [1, 2, 3, 7, 8, 9];
nums.splice (3, 0, 4, 5, 6);
Console.log (Nums); // [1, 2, 3, 4, 5, 6, 7, 8, 9]
// 그런 다음 삭제 작업을 수행하거나 새 배열을 추출하십시오.
var newnums = nums.splice (3, 4);
Console.log (Nums); // [1, 2, 3, 8, 9]
Console.log (Newnums); // [4, 5, 6, 7]
7 정렬
반전 및 정렬 방법에 대한 주요 소개. 배열 반전은 역 반전을 사용하며 정렬 방법은 간단한 정렬뿐만 아니라 복잡한 정렬에도 사용할 수 있습니다.
다음과 같이 코드를 복사하십시오./ 배열을 반전시킵니다
var array = [1, 2, 3, 4, 5];
Array.Reverse ();
Console.log (배열); // [5, 4, 3, 2, 1]
먼저 문자열 요소 배열을 정렬합니다
var arrayofnames = [ "David", "Mike", "Cynthia", "Clayton", "Bryan", "Raymond"];
ArrayofNames.sort ();
Console.log (ArrayofNames); // [ "Bryan", "Clayton", "Cynthia", "David", "Mike", "Raymond"]]]]
우리는 숫자 요소의 배열을 정렬합니다
/ 코드를 다음과 같이 복사하십시오./ 배열 요소가 숫자 유형 인 경우 Sort () 메소드 정렬 결과는 만족스럽지 않습니다.
var nums = [3, 1, 2, 100, 4, 200];
nums.sort ();
Console.log (Nums); // [1, 100, 2, 200, 3, 4]
정렬 방법은 사전 순서로 요소를 정렬하므로 요소가 모두 문자열 유형이라고 가정하므로 요소가 숫자 유형이더라도 문자열 유형으로 간주됩니다. 현재 메소드를 호출 할 때 크기 비교 함수를 전달할 수 있습니다. 정렬 할 때 Sort () 메소드는 함수에 따라 배열의 두 요소의 크기를 비교하여 전체 배열의 순서를 결정합니다.
다음과 같이 코드를 복사하십시오. var compare = function (num1, num2) {
Num1> Num2를 반환합니다.
};
nums.sort (비교);
Console.log (Nums); // [1, 2, 3, 4, 100, 200]
var objinarray = [
{
이름 : 'King',
패스 : '123',
색인 : 2
},
{
이름 : 'King1',
패스 : '234',
색인 : 1
}
];
// 배열의 객체 요소에 대한 색인에 따른 오름차순 순서
var compare = function (O1, O2) {
return o1.index> o2.index;
};
objinarray.sort (비교);
console.log (objinarray [0] .index <objinarray [1] .index); // 진실
8 반복자 방법
주로 foreach 및 모든, 일부 및지도, 필터가 포함됩니다
나는 모든 사람이 그것을 위해 그것을 할 수 있다고 생각하며, 주로 다른 네 가지 방법을 소개 할 것입니다.
모든 방법은 배열의 각 요소에 사용되는 부울 리턴 값의 함수를 수용합니다. 모든 요소에 대해 함수가 true를 반환하면 메소드가 true를 반환합니다.
코드 사본은 다음과 같습니다. var nums = [2, 4, 6, 8];
// 새 배열을 생성하지 않는 반복 메소드
var iseven = function (num) {
반환 Num % 2 === 0;
};
// 모두 숫자 인 경우 true를 반환하십시오
Console.log (Nums.every (iseven)); // 진실
일부 방법은 부울 반환 값이있는 함수를 수용합니다. 함수가 true를 반환하는 요소가있는 한, 메소드는 true를 반환합니다.
var iseven = function (num) {
반환 Num % 2 === 0;
};
var nums1 = [1, 2, 3, 4];
Console.log (Nums1.Some (Iseven)); // 진실
맵과 필터 방법 모두 새로운 어레이를 생성 할 수 있습니다. 맵으로 반환 된 새로운 배열은 원래 요소에 함수를 적용한 결과입니다. 좋다:
다음과 같이 코드를 복사하십시오. var up = function (grade) {
반환 등급 += 5;
}
var grades = [72, 65, 81, 92, 85];
var newgrades = grades.ma
필터 방법은 부울 리턴 값이있는 함수를 전달하는 모든 방법과 매우 유사합니다. 모든 () 메소드와 달리, 함수가 배열의 모든 요소에 적용되고 결과가 true 일 때, 메소드는 true를 반환하지 않지만 함수가 적용된 후 결과가 포함 된 요소를 포함하는 새 배열을 반환합니다.
다음과 같이 코드를 복사하십시오. var iseven = function (num) {
반환 Num % 2 === 0;
};
var isodd = function (num) {
반환 Num % 2! == 0;
};
var nums = [];
for (var i = 0; i <20; i ++) {
nums [i] = i + 1;
}
var evens = nums.filter (iseven);
Console.log (Evens); // [2, 4, 6, 8, 10, 12, 14, 16, 18, 20]
var volds = nums.filter (isodd);
Console.log (ODD); // [1, 3, 5, 7, 9, 11, 13, 15, 17, 19]
3. 요약
위의 내용은 일부 방법이 저수준 브라우저에서 지원되지 않는다는 문제가 있으며 호환 가능한 구현에는 다른 방법을 사용해야합니다.
이것들은 모든 사람이 생각하기 쉽지 않을 수있는 일반적인 방법입니다. 모두가 더 많은주의를 기울일 수도 있습니다.
이 기사가 모든 사람의 JavaScript 프로그래밍에 도움이되기를 바랍니다.