변환 방법: 1. "for in" 문을 사용하여 배열 유사 객체를 배열로 변환합니다. 구문은 "for(var i in obj){console.log(arr.push(obj[i])"입니다. );}"; 2 , 내장된 객체 키와 값, "Object.keys(obj)" 및 "Object.values(obj)" 구문을 사용합니다. 3. Array 객체의 from() 함수를 사용합니다. "Array.from(obj)" 구문.
이 튜토리얼의 운영 환경: Windows 7 시스템, ECMAScript 버전 6, Dell G3 컴퓨터.
JavaScript에는 배열처럼 보이지만 배열이 아닌 배열 유사 개체라고 하는 일부 개체가 있습니다.
0부터 시작하고 키로 자연스럽게 증가하는 정수만 포함하며, 일반적으로 배열과 유사한 객체로 간주되는 요소 수를 나타내는 데 사용되는 길이 객체 도 정의합니다.
에는 객체 요소를 가리키는 숫자 인덱스 첨자가 있으며, 길이 속성은 객체의 요소 수를 알려줍니다.
에는 배열 객체에 있는 push, forEach 및 indexOf와 같은 메서드가 없습니다.
배열 유사 객체를 배열로 변환
첫 번째 방법: for in을 사용하여 배열 유사 객체를 배열로 변환
<script type="text/javascript"> var obj = { 0: 'a', 1: 'b', 2: 'c', }; console.log(obj[0]); console.log(typeof obj); var arr = []; for(var i in obj){ console.log(arr.push(obj[i])); } console.log(arr); //把类数组对象放在一个名为arr的新数组里使得obj变成了数组 console.log(arr instanceof Array);//判断arr是否为数组 </script>
전체를 가져오려면 객체:
let arr1 = [] for (let i in obj) { let newobj = {} newobj[i] = obj[i] arr1.push(newobj); } console.log(arr1);
두 번째 방법: 내장 객체 키 및 값
내장 객체 Object.keys: 키 가져오기
내장 객체 Object.values 가져오기 value
let obj = { '1': 5, '2': 8, '3': 4, '4': 6 }; //内置对象Object.keys:获取键 var arr = Object.keys(obj) console.log(arr); //内置对象Object.values获取值 var arr2 = Object.values(obj) console.log(arr2);
세 번째 방법: Array.from( )
let obj = { '0': 5, '1': 8, '2': 4, '3': 6, 'length':4 }; let arr = Array.from(obj) console.log(arr);
Array.from()은 객체를 배열로 변환하려면 2가지 조건을 충족해야 합니다
1: 키 숫자 값이어야 합니다
2: 길이가 있는 키-값 쌍이 있어야 합니다
길이를 쓰지 않을 때:
길이 키-값 쌍이 추가될 때:
확장된 지식: for of, for in 및 forEach의 차이
let arr = ['周一', '周二', '周三', '周四','周五','周六','周日'] // for of for (let item of arr) { console.log(item); } // for in for (let i in arr) { console.log(i); } // forEach arr.forEach(item => { console.log(item); })
효과는 그림과 같습니다.
for in 항목은 배열의 항목을 나타냅니다.
i의 for는 일반적으로 객체를 순회하는 데 사용되는 인덱스를 나타냅니다.
forEach 메서드는 배열의 각 요소를 호출하는 데 사용되며 해당 요소를 콜백 함수에 전달합니다.
1 for-in
루프의 모든 트랩을 피할 수 있습니다. for-in
循环中的所有陷阱
2.可以使用 break
, continue
和 return
3.for-of
循环不仅仅支持数组的遍历。同样适用于很多类似数组的对象
4.它也支持字符串
的遍历
5.for-of 并不适用于处理原有的原生对象
注:for..in循环会把某个类型的原型(prototype)中方法与属性给遍历出来,所以这可能会导致代码中出现意外的错误
1、foreach
2 break
를 사용하면 continue할 수 있습니다.
및 return
3.for-of
루프는 배열 탐색만 지원하는 것이 아닙니다. 또한 배열과 유사한 많은 객체에도 적합합니다.
string
탐색도 지원합니다. 5. for-of는 원래 기본 객체를 처리하는 데 적합하지 않습니다.
참고: for..in 루프는 특정 유형의 프로토타입에 있는 메서드와 속성을 순회하므로 코드에서 예기치 않은 오류가 발생할 수 있습니다
foreach
메서드는 루프🎜🎜🎜2에서 반환, 중단 및 계속 문을 사용할 수 없습니다. forEach 메서드에서 함수 콜백 3개의 매개변수가 있습니다: 🎜🎜🎜🎜🎜🎜 (1) 매개변수는 순회된 배열 내용입니다(필수). 🎜(2) 매개변수는 해당 배열 인덱스입니다(선택 사항) 🎜(3) 매개변수는 배열 자체입니다(선택 사항). 🎜🎜 3. 배열의 각 요소에 대해 제공된 함수를 한 번씩 실행합니다. 정의되지 않은 반환🎜【추천 학습: javascript 비디오 튜토리얼】
위 내용은 es6에서 배열과 유사한 객체를 배열로 변환하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!