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

자바스크립트 배열의 요소를 삭제하는 방법

藏色散人
藏色散人원래의
2021-05-11 15:27:1016336검색

자바스크립트 배열에서 요소를 삭제하는 방법: 먼저 자바스크립트 배열 배열 객체에 대한 함수를 정의하여 배열에서 지정된 요소의 위치를 ​​찾은 다음 마지막으로 제거 기능을 통해 요소를 삭제합니다. 할 수 있다.

자바스크립트 배열의 요소를 삭제하는 방법

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

js는 배열에서 요소를 삭제합니다

배열에 지정된 요소 삭제

먼저 js 배열 개체에 대한 함수를 정의하여 배열에서 지정된 요소의 위치를 ​​찾을 수 있습니다. , index , 코드는 다음과 같습니다.

Array.prototype.indexOf = function(val) {
for (var i = 0; i < this.length; i++) {
if (this[i] == val) return i;
}
return -1;
};

그런 다음 이 요소의 인덱스를 사용하고 js 배열 자체 함수를 사용하여 이 요소를 삭제합니다.

코드는 다음과 같습니다.

Array.prototype.remove = function(val) {
var index = this.indexOf(val);
if (index > -1) {
this.splice(index, 1);
}
};

이런 식으로 이러한 함수가 구성됩니다. 예를 들어 배열이 있습니다:

var emp = [&#39;abs&#39;,&#39;dsf&#39;,&#39;sdf&#39;,&#39;fd&#39;]

'fd'를 삭제하려면 다음을 사용할 수 있습니다.

emp.remove(&#39;fd&#39;);

배열의 항목 삭제

splice(index,len,[item]) 참고: 이 방법은 원래 배열을 변경하십시오.

splice에는 3개의 매개변수가 있으며, 배열에서 하나 이상의 값을 대체/삭제/추가하는 데에도 사용할 수 있습니다.·

index: 배열 시작 인덱스 len: 대체/삭제 항목의 길이: 대체 값, 삭제 작업 If 항목이 비어 있습니다

예: arr = ['a','b','c','d']

Delete

//删除起始下标为1,长度为1的一个值(len设置1,如果为0,则数组不变)
var arr = [&#39;a&#39;,&#39;b&#39;,&#39;c&#39;,&#39;d&#39;];
arr.splice(1,1);
console.log(arr);  
//[&#39;a&#39;,&#39;c&#39;,&#39;d&#39;]; 
//删除起始下标为1,长度为2的一个值(len设置2)
var arr2 = [&#39;a&#39;,&#39;b&#39;,&#39;c&#39;,&#39;d&#39;]
arr2.splice(1,2);
console.log(arr2); 
//[&#39;a&#39;,&#39;d&#39;]

Replace

//code from http://caibaojian.com/js-splice-element.html
//替换起始下标为1,长度为1的一个值为‘ttt’,len设置的1
var arr = [&#39;a&#39;,&#39;b&#39;,&#39;c&#39;,&#39;d&#39;];
arr.splice(1,1,&#39;ttt&#39;);
console.log(arr);        
//[&#39;a&#39;,&#39;ttt&#39;,&#39;c&#39;,&#39;d&#39;] 
var arr2 = [&#39;a&#39;,&#39;b&#39;,&#39;c&#39;,&#39;d&#39;];
arr2.splice(1,2,&#39;ttt&#39;);
console.log(arr2);       
//[&#39;a&#39;,&#39;ttt&#39;,&#39;d&#39;] 替换起始下标为1,长度为2的两个值为‘ttt’,len设置的1

Add------ len이 0으로 설정되었습니다.

var arr = [&#39;a&#39;,&#39;b&#39;,&#39;c&#39;,&#39;d&#39;];
arr.splice(1,0,&#39;ttt&#39;);
console.log(arr);        
//[&#39;a&#39;,&#39;ttt&#39;,&#39;b&#39;,&#39;c&#39;,&#39;d&#39;] 表示在下标为1处添加一项&#39;ttt&#39;

2의 값이 추가되었습니다: delete

delete 배열의 요소를 삭제한 후 배열 아래에 표시된 값은 정의되지 않은 값으로 설정되고 배열의 길이는 변경되지 않습니다

var arr = [&#39;a&#39;,&#39;b&#39;,&#39;c&#39;,&#39;d&#39;];
delete arr[1];
arr;  
//["a", undefined × 1, "c", "d"] 中间出现两个逗号,数组长度不变,有一项为undefined

업데이트 2016-11 -17: stackoverflow가 높음 하위 답변에서 jquery의 아버지인 John Resig가 기사에서 작성한 코드를 보았습니다.

// Array Remove - By John Resig (MIT Licensed)
Array.prototype.remove = function(from, to) {
  var rest = this.slice((to || from) + 1 || this.length);
  this.length = from < 0 ? this.length + from : from;
  return this.push.apply(this, rest);
};

다음은 실제 사용 사례입니다.

// 移除数组中的第二项
array.remove(1);
// 移除数组中的倒数第二项
array.remove(-2);
// 移除数组中的第二项和第三项(从第二项开始,删除2个元素)
array.remove(1,2);
// 移除数组中的最后一项和倒数第二项(数组中的最后两项)
array.remove(-2,-1);

이 예는 다음과 매우 유사합니다. 위의 첫 번째 항목이지만 확인 요소가 없습니다. 특정 항목은 배열에 있는 요소의 아래 첨자 위치를 기준으로 찾아 삭제됩니다.

추천 학습: "javascript 고급 튜토리얼"

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

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