>  기사  >  웹 프론트엔드  >  자바스크립트에서 배열 요소를 제거하는 방법

자바스크립트에서 배열 요소를 제거하는 방법

藏色散人
藏色散人원래의
2021-04-23 10:07:3711573검색

JavaScript에서 배열 요소를 제거하는 방법: 1. 길이 속성을 통해 배열 요소를 제거합니다. 2. 삭제 키워드를 통해 제거합니다. 4. 대기열 메서드를 통해 제거합니다. 제거 6. 반복 방법을 통해 제거 7. 프로토타입 방법을 통해 제거.

자바스크립트에서 배열 요소를 제거하는 방법

이 문서의 운영 환경: Windows 7 시스템, JavaScript 버전 1.8.5, Dell G3 컴퓨터.

JavaScript에서 배열 요소를 삭제하는 7가지 방법 요약

JavaScript에서는 Object 외에 Array 유형이 아마도 가장 일반적으로 사용되는 유형일 것입니다. 다른 언어의 배열과 큰 차이가 있습니다. JavaScript의 배열은 매우 유연합니다. 오늘은 JavaScript에서 Array를 삭제하는 방법을 요약해 보겠습니다. 일반적인 분류는 다음과 같은 범주로 나눌 수 있습니다.
1. 길이
2. 삭제
3. 스택 방법
4. 대기열 방법
5. 작업 방법
6. 반복 방법
7. 프로토타입 방법

이제 말씀드리겠습니다. 위 내용에 대해 예와 설명을 하나씩 들어보세요.

1.length

JavaScript中Array的length属性非常有特点一一它不是只读的。因此,通过设置这个属性可以从数组的末尾移除项或添加新项,请看下面例子:
var colors = ["red", "blue", "grey"];   //创建一个包含3个字符串的数组colors.length = 2;
console.log(colors[2]);  //undefined

2. delete 키워드

var arr = [1, 2, 3, 4];delete arr[0];console.log(arr);   //[undefined, 2, 3, 4]

삭제 후에도 배열의 길이는 변하지 않지만 삭제된 요소는 정의되지 않음으로 설정되어 있는 것을 볼 수 있습니다.

3. 스택 메서드

var colors = ["red", "blue", "grey"];
var item = colors.pop();
console.log(item);      
//"grey"console.log(colors.length);    
//2

Pop 메서드가 호출되면 배열이 "회색"인 마지막 항목을 반환하고 배열에 두 개의 요소만 남는 것을 볼 수 있습니다.

4. 대기열 방식

대기열 데이터 구조의 액세스 규칙은 FIFO(선입선출)입니다. 대기열은 목록 끝에 항목을 추가하고 목록 앞쪽에서 항목을 제거합니다. 배열에서 항목을 제거할 수 있는 메서드입니다. 첫 번째 항목이 반환되고 배열의 길이가 1씩 감소합니다.

var colors = ["red", "blue", "grey"];
var item = colors.shift();
console.log(item);      
//"red"console.log(colors.length);    
//2

5. 작업 방법

splice()는 아마도 가장 강력한 배열 방법일 것입니다. 여기에서는 배열 요소를 삭제하는 방법만 소개합니다. 배열 요소를 삭제할 때 원하는 만큼 항목을 삭제할 수 있습니다. 삭제할 첫 번째 항목의 위치와 삭제할 항목 수 등 2개의 매개변수만 지정하면 됩니다. 예를 들어 splice(0, 2)는 삭제됩니다. 배열의 첫 번째 항목입니다.

var colors = ["red", "blue", "grey"];var item = colors.splice(0, 1);console.log(item);      
//"red"console.log(colors);    
//["blue", "grey"]

[추천 학습: 고급 자바스크립트 튜토리얼]

6. 반복 방법

소위 반복 방법은 루프를 사용하여 배열 요소를 반복하고 해당 항목과 일치하는 항목을 삭제하는 것입니다. 가장 일반적으로 사용되는 곳은 배열의 요소가 객체인 경우 ID 등 객체의 속성에 따라 배열 요소가 삭제되는 경우입니다. 아래에 두 가지 방법이 소개됩니다.

첫 번째 방법은 가장 일반적인 ForEach 루프를 사용하여 요소를 비교하고 찾은 후 삭제합니다.

var colors = ["red", "blue", "grey"];

colors.forEach(function(item, index, arr) {
    if(item == "red") {
        arr.splice(index, 1);
    }
});

두 번째 방법은 루프에서 필터 방법을 사용합니다.

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 Array에서 요소를 삭제하는 데 일반적으로 사용되는 방법을 요약했습니다. 누구나 추가할 수 있습니다.

위 내용은 자바스크립트에서 배열 요소를 제거하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.