인터셉트 배열: Slice(startIndex, endIndex):
배열에서 지정된 시작 위치와 끝 위치에 있는 배열을 반환합니다. 원래 배열의 내용은 변경되지 않습니다.
또한 또 다른 중요한 방법인 배열 요소를 삽입, 삭제 또는 교체하는 방법이 있습니다.
splice(startIndex, Howmany, element1~elementX): 원본 배열 내용을 수정합니다. 매개변수의 의미는 "시작 위치 지정", "삭제할 요소 수(0일 수 있음)", "배열에 추가된 새 요소(startIndex 첨자부터 시작)"입니다.
관련 애플리케이션
//질문 1: "A[B]C[D]E[F]G"는 두 개의 배열, 즉 ACEG와 [B][D][ F]로 나뉩니다.
function QuestionFn1() {
var str = "A[B]C[D]E[F]G";
var oGetTwoArray = new GetTwoArray();
//왼쪽 및 오른쪽 괄호 안의 값 가져오기
oGetTwoArray.GetLeftAndRightValue( str);
oGetTwoArray.GetNoLeftAndRightValue(str);
var array1 = oGetTwoArray.arrBetweenLeftRight;
var array2 = oGetTwoArray.arrNoLeftRight;
Alert(array2 .join(""));
}
//왼쪽 및 오른쪽 괄호의 인덱스 찾기
function GetTwoArray() {
this.indexLeft = 0; 왼쪽 괄호
this.indexRight = 0; //오른쪽 괄호 인덱스
this.arrBetweenLeftRight = []; //배열: 왼쪽 및 오른쪽 괄호에 문자를 저장합니다.
this.arrNoLeftRight = [] / /배열: 괄호로 묶이지 않은 문자 저장
//왼쪽 및 오른쪽 괄호 안의 값 가져오기
this.GetLeftAndRightValue = function(str) {
//문자열에서 왼쪽 괄호 인덱스 찾기
this.indexOf('[');
this.indexRight = str.indexOf(']')
//괄호 안의 값 가져오기(괄호 포함)
var value = str.substring(this.indexLeft, this.indexRight 1);
//배열에 저장됨
this.arrBetweenLeftRight.push(value)//나머지 str
var RestStr = str.substr(this.indexRight 1);
/ /왼쪽 및 오른쪽 대괄호가 있으면 계속해서
if (restStr.indexOf('[') != -1 && RestStr.indexOf(' ]') != -1) {
this.GetLeftAndRightValue(restStr) ;
}
}
//왼쪽 및 오른쪽 괄호 없이 값 가져오기
this.GetNoLeftAndRightValue = function(str ) {
//문자열에서 왼쪽 대괄호의 인덱스를 찾습니다.
this .indexLeft = str.indexOf('[')
this.indexRight = str.indexOf(']'); 🎜>//왼쪽 및 오른쪽 괄호 없이 값 가져오기(첫 번째 오른쪽 괄호 다음에)
var value = str.substring(0, 1)
if (value != '[') { //Because 첫 번째는 왼쪽 대괄호일 수 있습니다.
//배열에 저장됨
this.arrNoLeftRight.push(value)
}
//나머지 str
var RestStr = str.substr (this.indexRight 1);
//왼쪽 및 오른쪽 괄호가 있는 경우 계속 찾기
if (restStr.indexOf('[') != -1 && RestStr.indexOf(']') != -1) {
this.GetNoLeftAndRightValue(restStr);
}
//왼쪽 및 오른쪽 대괄호가 없습니다. 모두 배열에 추가하세요.
else if (restStr.indexOf(' [') == -1 && RestStr.indexOf(']') == -1) {
this.arrNoLeftRight.push(restStr)
}
}
}
//질문 2: [1, 3, 5, 7, 9]와 [2, 4, 6, 7, 8, 10, 13]과 같은 두 개의 정렬된 정수 배열이 있습니다. 함수를 설계하세요. 두 배열을 병합하고 두 배열의 중복 요소를 제거합니다.
코드 복사
//두 번째 배열인 경우 숫자가 배열 1에서 특정 숫자보다 작으면 앞에 삽입합니다.
if (arr2[j] < arr1[i] ) {
arr1.splice(i, 0, arr2[j]);
break;
}
//같으면 제거
else if (arr2[j] == arr1[ i]) {
arr1.splice(i, 1, arr2[j]) ;
break;
}
//arr2[j]가 배열 1의 마지막 숫자보다 큰 경우
else if (arr2[j] > arr1[ arr1.length - 1]) {
arr1.push(arr2[j])
}
}
}
alert(arr1.toString());
}
//질문 3: [2, 4, 5, 6, 7과 같은 정수 배열이 제공됩니다. , 8]과 10과 같은 숫자, 두 요소를 찾는 함수를 설계하고, 이 두 숫자의 합을 주어진 숫자로 만들어서 출력하세요.
코드 복사
function QuestionFn3() {
var sum = window.prompt("배열에 있는 두 숫자의 합을 입력하세요.", 10)
var arr = [2, 4, 5 , 6, 7, 8];
var isFind = false; //기록이 존재함
for (var i = 0; i < arr.length; i ) {
for (var j = i 1 ; j < arr.length; j ) {
if (arr[j] arr[i] == sum) {
alert(arr[i] " " arr[j] "=" sum);
isFind = true;
}
}
}
//찾을 수 없는 경우
if (!isFind) {
alert("배열에 있는 두 숫자의 합 는 " sum);
}
}
자바스크립트 배열 기본 사항에 대한 자세한 내용은
자바스크립트 배열 사용법 호출 메서드 요약