JavaScript에서 유사 배열(Array-Like Object)이라고도 하는 의사 배열은 인덱스에 따라 데이터를 저장하고 길이 속성을 갖는 배열 유사 객체입니다. push() 및 forEach 함수() 및 기타 메서드.
이 튜토리얼의 운영 환경: Windows 7 시스템, JavaScript 버전 1.8.5, Dell G3 컴퓨터.
유사 배열이라고도 알려진 유사 배열(ArrayLike). 인덱스에 따라 데이터를 저장하고 길이 속성을 갖는 배열형 객체입니다. 그러나 다음과 같은 특징이 있습니다.
색인별로 데이터 저장
0: xxx, 1: xxx, 2: xxx...
0: xxx, 1: xxx, 2: xxx...
具有length
属性
但是length
length
속성이 있지만length 속성은 동적이지 않으며 멤버가 변경되어도 변경되지 않습니다. arrayLike.__proto__ === Object.prototype; //true arrayLike instanceof Object; //true arrayLike instanceof Array; //false
예:
var arrLike = { 0: 'a', 1: 'b', 2: 'c', length: 3, } arrLike[1]; //'a' arrLike.length; //3 arrLike.push('d'); //Uncaught TypeError: arrLike.push is not a function
var arrLike = { 0: 'a', 1: 'b', 2: 'c', length: 3, };
1. 빈 배열을 탐색하고 추가합니다
var arr = []; for(var i = 0; i < arrLike.length; i++){ arr.push(arrLike[i]); }
2. 배열의 Slice() 메소드를 사용하세요. [권장]
;[].slice.call(arrLike);
Array.prototype.slice.apply(arrLike);
예를 들어 jQuery에서 $()로 얻은 DOM 의사 배열의 컨텍스트 속성은 이 메서드로 변환된 후에 유지되지 않습니다.
slice()의 내부 구현을 시뮬레이션Array.prtotype.slice = function(start, end){ var result = new Array(); var start = start | 0; var end = end | this.length; for(var i = start; i < end; i++){ result.push(this[i]); } return result; }
3. 프로토타입 포인터 수정
arrLike.__proto__ = Array.prototype;
4. ES2015의 Array.from() 메서드
Array.from() 메서드는 유사 배열 또는 반복 가능 객체에서 새 배열 인스턴스를 생성합니다.
var arr = Array.from(arrLike);
위 내용은 자바스크립트의 의사 배열이란 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!