JavaScript에서 배열 요소를 삭제하는 방법: 1. 길이 속성을 사용합니다. 2. 삭제 키워드를 사용합니다. 3. [pop()] 스택 메서드를 사용합니다. 4. [shift()] 대기열 메서드를 사용합니다. [접속( )]을 이용하여 조작하는 방법입니다.
이 튜토리얼의 운영 환경: Windows 7 시스템, JavaScript 버전 1.8.5, DELL G3 컴퓨터.
JavaScript에서 배열 요소를 삭제하는 방법:
1. 길이 속성
JavaScript에서 배열의 길이 속성은 매우 독특합니다. 이는 읽기 전용이 아닙니다. 따라서 이 속성을 설정하여 배열 끝에서 항목을 제거하거나 새 항목을 추가할 수 있습니다.
var colors = ["red", "blue", "grey"]; // 创建一个包含3个字符串的数组 colors.length = 2; console.log(colors[2]); // undefined
2. 삭제 키워드
JavaScript는 배열 요소를 삭제(지우기)하는 삭제 키워드를 제공합니다.
var colors = ["red", "blue", "grey", "green"]; delete colors[0]; console.log(colors); // [undefined, "blue", "grey", "green"]
delete를 사용하여 요소를 삭제한 후 배열의 길이는 변경되지 않지만 삭제된 요소는 정의되지 않음으로 설정된다는 점에 유의해야 합니다.
3. pop() 스택 메소드
JavaScript의 Array 객체는 배열의 마지막 항목을 팝하고 반환하기 위한 pop() 스택 메소드를 제공하며, 이는 어느 정도 삭제에 사용될 수 있습니다.
스택 데이터 구조의 접근 규칙은 FILO(First In Last Out)입니다. 스택 작업은 스택 상단에 항목을 추가하고 스택 상단에서 항목을 제거할 수 있는 pop() 메서드를 사용합니다. 배열의 마지막 항목이 반환되고 배열의 길이가 1씩 감소합니다.
var colors = ["red", "blue", "grey"]; var color = colors.pop(); console.log(color); // "grey" console.log(colors.length); // 2
pop() 메서드가 호출되면 배열이 "회색"인 마지막 항목을 반환하고 배열에 두 개의 요소만 남는 것을 볼 수 있습니다.
4.shift() 대기열 메서드
JavaScript의 Array 객체는 배열의 첫 번째 항목을 꺼내고 반환하는 Shift() 대기열 메서드를 제공하며, 이는 어느 정도 삭제에도 사용될 수 있습니다.
큐 데이터 구조의 접근 규칙은 FIFO(선입선출)입니다. 큐는 목록의 끝에 항목을 추가하고 목록의 앞쪽에서 항목을 제거합니다. 항목을 제거할 수 있습니다. 첫 번째 항목이 반환되고 배열의 길이가 1씩 감소합니다.
var colors = ["red", "blue", "grey"]; var color = colors.shift(); console.log(color); // "red" console.log(colors.length); // 2
shift() 메서드가 호출되면 배열이 "빨간색"인 첫 번째 항목을 반환하고 배열에 두 개의 요소만 남는 것을 볼 수 있습니다.
5. splice() 작업 메서드
JavaScript의 Array 객체는 배열에 대한 특정 작업을 수행하기 위한 splice() 메서드를 제공합니다. splice()는 아마도 가장 강력한 배열 방법일 것입니다. 여기서는 배열 요소를 삭제하는 방법만 소개합니다. 배열 요소를 삭제할 때 삭제할 첫 번째 항목의 위치와 삭제할 항목 수라는 2개의 매개변수만 지정하여 원하는 수의 항목을 삭제할 수 있습니다.
var colors = ["red", "blue", "grey"]; var color = colors.splice(0, 1); console.log(color); // "red" console.log(colors); // ["blue", "grey"]
splice(0, 1) 메소드가 호출되면 배열의 첫 번째 항목부터 하나의 항목이 삭제되는 것을 볼 수 있습니다.
6. 반복 방법
소위 반복 방법은 루프를 사용하여 배열 요소를 반복하고 삭제하려는 항목과 일치하는 항목을 삭제하는 것입니다. 가장 일반적으로 사용되는 곳은 배열의 요소가 객체인 경우일 수 있으며, 객체의 특정 속성(예: ID)을 기반으로 배열 요소를 삭제할 수 있습니다.
첫 번째 방법은 가장 일반적인 ForEach 루프를 사용하여 요소를 비교하고 찾은 후 삭제합니다.
var colors = ["red", "blue", "grey"]; colors.forEach(function(item, index, arr) { if(item === "red") { arr.splice(index, 1); } });
splice() 메서드도 삭제를 위해 사용되는 것을 볼 수 있습니다. 루프는 단지 특정 요소를 찾는 것입니다. 또 다른 아이디어는 삭제할 필요가 없는 요소를 루프의 새 배열로 푸시하는 것입니다. 이는 특정 요소를 잘못 삭제하는 목적도 달성할 수 있습니다.
루프에서 필터 메서드를 사용하는 두 번째 방법입니다.
var colors = ["red", "blue", "grey"]; colors = colors.filter(function(item) { return item != "red" }); console.log(colors); // ["blue", "grey"]
코드는 매우 간단합니다. 요소가 빨간색이 아닌 항목의 수를 찾아 색상으로 반환합니다(실제로는 원래 배열을 삭제하는 것이 아니라 새 배열을 얻습니다). 특정 요소를 삭제하는 목적.
7. 프로토타입 프로토타입 메서드
Array의 프로토타입에 메서드를 추가하면 삭제 목적을 달성할 수 있습니다.
Array.prototype.remove = function(dx) { if(isNaN(dx) || dx > this.length){ return false; } for(var i = 0, n = 0; i < this.length; i++) { if(this[i] != this[dx]) { this[n++] = this[i]; } } this.length -= 1; }; var colors = ["red", "blue", "grey"]; colors.remove(1); console.log(colors); // ["red", "grey"]
이 방법은 실제로 삭제 로직을 직접 구현한 후 Array 프로토타입 객체에 삭제 메소드를 추가하면 이 환경의 모든 Array 객체가 이 방법을 사용할 수 있습니다. 그렇게 하는 것이 가능하더라도 프로덕션 애플리케이션에서 기본 개체의 프로토타입을 수정하는 것은 권장되지 않습니다. 이유는 간단합니다. 특정 구현에서 메소드가 누락된 경우 이 메소드를 기본 객체의 프로토타입에 추가하면 이 메소드를 지원하는 다른 구현에서 코드가 실행될 때 이름 지정 충돌이 발생할 수 있습니다. 그렇게 하면 실수로 기본 메서드가 재정의될 수 있습니다.
관련 무료 학습 권장사항: javascript(동영상)
위 내용은 자바스크립트에서 배열 요소를 삭제하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!