JavaScript 배열을 그룹화할 수 있는 값을 반복합니다. 다른 방법으로 배열 요소를 추가하고 제거할 수 있습니다. 불행히도 간단한 배열이 없습니다.제거 방법.
그렇다면 자바 스크립트 배열에서 요소를 어떻게 삭제합니까?,
삭제 방법 대신 JavaScript 배열에는 배열 값을 정리할 수있는 다양한 방법이 있습니다.
pop 를 사용하여 배열의 끝에서,shift 를 사용하여 처음부터 또는 스플 라이스를 사용하여 중간에서 요소를 제거 할 수 있습니다. 자바 스크립트 배열 필터 방법은 원하는 항목,원치 않는 요소를 제거하는 더 진보 된 방법으로 새 배열을 만들 수 있습니다.,licitly 제거하는 배열 요소를 사용하여 삭제 연산자
있는 다른 방법과 기법을 사용할 수 있는 요소를 제거에서 자바스크립트 배열:
- 팝을 제거에서 배열의 끝
- shift-을 제거에서 시작 부분의 배열
- 합 제거에서 특정 Array index
- 필터링할 수 있습을 프로그래밍 방식으로는 요소를 제거에서 배열
도 배우게 됩니다 일부는 다른 방법으로 당신이 할 수 있는 요소를 제거에서 배열 될 수 있는 그래서 명백 와 같은 LoDash.,
제거하는 요소의 끝에서 자바스크립트 배열
자바스크립트 배열 요소를 제거할 수 있습의 끝에서 배열을 설정하여 길이 속하는 보다 작은 값을 현재 값입니다. 인덱스가 새 길이보다 크거나 같은 모든 요소는 제거됩니다.
var ar = ; ar.length = 4; // set length to remove elements console.log( ar ); //
pop 메서드는 배열의 마지막 요소를 제거하고 해당 요소를 반환하며 length 속성을 업데이트합니다. 팝업 메소드 수정하는 배열에 있는 호출,이와는 달리 사용하여 삭제 마지막 요소가 완전히 제거와 배열의 길이는 줄어듭니다.,
var ar = ; ar.pop(); // returns 6 console.log( ar ); //
제거 요소에서의 시작을 자바스크립트 배열
당신은 어떻게 제거하는 첫 번째 요소의 자바스크립트 배열?
shift 메서드는 마지막 대신 JavaScript 배열의 첫 번째 요소를 제거하는 것을 제외하고는 pop 메서드처럼 많이 작동합니다.
시프트 방법은 첫 번째 배열 요소 만 제거했기 때문에 매개 변수가 없습니다. 요소가 제거되면 나머지 요소가 아래로 이동합니다.,
var ar = ; ar.shift(); // returns "zero" console.log( ar ); //
shift 메소드가 반환하는 요소를 제거 업데이트 인덱스의 나머지 요소 및 업데이트 길이로 제공합니다. 그것은 호출되는 배열을 수정합니다.
요소가 없거나 배열 길이가 0 인 경우 메서드는 정의되지 않은 상태로 반환합니다.
를 사용하여 결합하는 배열 요소를 제거에서 JavaScript
스플라이스 메서드를 사용할 수 있습을 추가하거나 제거 요소에서 훌륭한 기능들을 가지고 있습니다. 첫 번째 인수는 요소 추가 또는 제거를 시작할 위치를 지정합니다. 두 번째 인수는 제거 할 요소 수를 지정합니다., 세 번째 및 후속 인수는 선택 사항이며 배열에 추가 할 요소를 지정합니다.
여기에는 우리가 사용하여 결합하는 방법을 제거하는 두 가지 요소에서 출발 위치 세(영 따라 지수)
var arr = ; var removed = arr.splice(2,2);
배열을 포함하는 요소를 제거 반환에 의해 결합 방법입니다. 제거 된 배열이 포함되어 있고 원래 배열이 나머지 값을 포함하는 것을 볼 수 있습니다.
스플 라이스 방법은 배열에서 요소의 범위를 제거하는 데 사용될 수도 있습니다.,
var list = ; list.splice(0, 2); // Starting at index position 0, remove two elements and retains .
제거하는 배열하여 항목을 사용하여 값을 결합
알고 있는 경우 값에서 제거할 배열을 사용할 수 있습니 결합 방법입니다. 먼저 대상 항목의 색인을 식별해야합니다. 그런 다음 인덱스를 시작 요소로 사용하고 하나의 요소 만 제거합니다.
var arr = ; for( var i = 0; i < arr.length; i++){ if ( arr === 5) { arr.splice(i, 1); } } //=>
요소가 정수 인 간단한 예입니다. 당신이 객체의 배열을 가지고 있다면 당신은 더 정교한 루틴이 필요합니다.이것은 단일 항목 만 제거하려는 경우에 작동합니다., 당신이 당신의 기준에 일치하는 여러 항목을 제거 할 경우 결함이있다.
항목이 배열에서 제거 될 때 인덱스는 여전히 증가하고 일치하는 값 이후의 다음 항목은 건너 뜁니다.
간단한 솔루션을 수정한 위의 예을 감소하는 지수의 변수 그래서 그것을 건너뛰지 않습니다 다음 항목에서 배열입니다.
var arr = ; for( var i = 0; i < arr.length; i++){ if ( arr === 5) { arr.splice(i, 1); i--; } } //=>
수정 된 예제에서 배열에 2 개의 추가 5 개의 값을 추가했습니다. 또한 스플 라이스 호출 후’i–;’를 추가했습니다.
이제 루프를 실행하면 일치하는 모든 항목이 제거됩니다.,
다음 항목을 건너 뛰는 루프의 문제를 지적한 Kristian Sletten 에게 감사드립니다.
배열을 사용하여 필터링 방법을 제거하는 항목으로 값
과는 달리 결합 방법,필터를 만들어 새로운 배열입니다. filter()는 호출되는 배열을 돌연변이시키지 않지만 새 배열을 반환합니다.
filter()에는 단일 매개 변수 인 콜백 메소드가 있습니다. 필터 메서드가 배열 요소를 반복함에 따라 콜백이 트리거됩니다. 현재 값 또는 요소,현재 배열 인덱스 및 전체 배열의 세 가지 값을 콜백에 전달합니다.,콜백 메서드는 true 또는 false 를 반환해야합니다. 귀하의 기준에 부합하는지 확인하기 위해 가치(요소)를 테스트하는 것은 귀하의 책임입니다. 그것이하는 경우에 당신은 진실한 돌려보낼 수 있다. True 를 반환하는 요소는 필터링 된 새 배열에 추가됩니다.
var array = ; var filtered = array.filter(function(value, index, arr){ return value > 5; }); //filtered => //array =>
일치하는 값을 포함하는 새 배열이 반환됨을 유의해야합니다. 원래 배열은 그대로 유지됩니다. 을 찾을 이용하기 때문에 나는 수시로 유지하려면 원본 데이터를 원하지만,검색한 하위 집합에 따른 논리합니다.,
이 Lodash 배열 제거 방법
때로는 유틸리티의 라이브러리를 해결하는 가장 좋은 방법이 더 복잡한 문제입니다. Lodash 는 풍부한 배열 조작 방법 세트를 제공하며,하나는 제거됩니다.
Lodash 제거 방법은 배열 필터 방법과 비슷하지만 일종의 역으로 작동합니다. 원래 배열 값은 저장하지 않지만 일치하는 요소는 제거합니다. 일치하는 요소를 새 배열로 반환합니다.
var array = ;var evens = _.remove(array, function(n) { return n % 2 === 0;});console.log(array);// => console.log(evens);// =>
제거 방법 만들기
이전에 언급했듯이 기본 배열이 없습니다.제거 방법., Lodash lodash 메서드는이 문제를 해결하지만 항상 Lodash 를 사용하고 싶지는 않을 수 있습니다. 그렇다고해서 유틸리티 메소드를 만들 수 없다는 의미는 아닙니다. John Resig 는 우리에게 따라야 할 모델을 주었지만 배열 프로토 타입을 확장했는데 이는 나쁜 생각입니다.
대신 도우미 또는 유틸리티 라이브러리에 추가 할 수있는 배열 제거 유틸리티 방법을 만들었습니다. Lodash 제거 방법과 마찬가지로 첫 번째 매개 변수는 대상 배열입니다. 그것은 배열을 사용합니다.값과 일치하지 않는 요소를 반환하려면 필터링하십시오.
이 방법은 간단하며 숫자 나 문자열과 같은 간단한 값을 가정합니다., 수정할 수 있습 이 방법을 사용하 customcomparison 방법이지만,그것을 생각하는 것이 더 쉽 필터를 사용하여 방법을 직접 있습니다.
명시적으로 제거하는 배열 요소를 사용하여 삭제 연산자
제거할 수 있습니다 특정 요소의 배열을 사용하여 삭제사를 진행하고 있습니다.
var ar = ; delete ar; // delete element with index 4 console.log( ar ); // alert( ar ); // 1,2,3,4,,6
를 사용하여 삭제 연산자에 영향을 미치지 않는 길이로 제공합니다. 후속 요소의 인덱스에도 영향을 미치지 않습니다. 배열이 희소 해지면 삭제 된 항목이 제거되지는 않지만 정의되지 않게된다는 멋진 방법입니다. 삭제 사용을 아래에 설명 된 스플 라이스 방법과 비교하십시오.,
delete 연산자는 배열이 객체 인 JavaScript 객체에서 속성을 제거하도록 설계되었습니다.
는 이유는 요소에서 실제로 제거되지 않습니다 배열이 삭제 연산자에 대해 더 많은 메모리를 해제보다는 삭제를 요소입니다. 값에 대한 참조가 더 이상 없을 때 메모리가 해제됩니다.
명확하거나 재설정 자바 스크립트는 배열
무엇이 당신이 원하는 경우를 빈 전체 배열 및 덤프리고 그것의 모든 요소가?
빈 배열이나 새 배열을 만드는 데 사용할 수있는 몇 가지 기술이 있습니다.,
는 간단하고 빠른 기술을 배열 변수 설정을 빈 배열
var ar = ;//do stuffar = ;//a new, empty array!
문제가 생성될 수 있는 경우를 참조하여 변수입니다. 이 변수에 대한 참조는 변경되지 않으며 원래 배열의 값을 계속 유지합니다. 이것은 물론 버그를 만들 수 있습니다🐛.
이것은 간단한 예제는 이 시나리오의:
var arr1 = ;var arr2 = arr1; // Reference arr1 by another variable arr1 = ; console.log(arr2); // Output
간단한 명확한 배열을 설정하는 것 그것의 길이는 시설은 0 입니다.,
var ar = ;console.log(ar); // Output ar.length = 0;console.log(ar); // Output
,다른 종류의 자연스러운 기술을 사용하는 것이 결합을 전달하는 방법을 배열 길이 제 2 매개 변수입니다. 이렇게하면 원본 요소의 복사본이 반환되므로 시나리오에 편리 할 수 있습니다.
var ar = ;console.log(ar); // Output ar.splice(0, ar.length);console.log(ar); // Output
마지막 두 기술은 새 배열을 만들지 않지만 배열의 요소를 변경합니다. 이는 참조도 업데이트해야 함을 의미합니다.
while 루프를 사용하는 또 다른 방법이 있습니다. 그것은 나에게 조금 이상한 느낌이 들지만,동시에 공상처럼 보이기 때문에 친구들에게 깊은 인상을 줄 수 있습니다!,
var ar = ;console.log(ar); // Output while (ar.length) { ar.pop(); }console.log(ar); // Output
자바 스크립트 배열을 지우는 방법은 아니지만 작동하며 읽을 수 있습니다. 성능 테스트는 또한 다음과 같이 가장 빠른 기술,그래서 어쩌면 그것보다 더 나은 내가 원래 생각했습니다.
요약
자바 스크립트 배열 항목을 제거하는 것은 데이터를 관리하는 데 중요합니다. 이 없는 단일 제거 방법을 사용할 수 있지만 다른 방법이 있다고 사용할 수 있는 기술을 제거하는 배열을 원치 않는 항목입니다.
이 기사에서는 이러한 방법과 사용 방법을 검토했습니다., 당신은 또한 보았을 만드는 방법을 돕는 방법을 제거하는 항목 배열에서 조금 더 쉽고 일관성입니다.
일부 구문 오타를 지적 해 주신 Rob Sherwood 에게 감사드립니다!피>