ES6 의 Array. from 방법 과 Object. values 의 차이

2051 단어
ES6 에서 Array. from () 방법 을 업 데 이 트 했 습 니 다. 클래스 배열 대상 이나 교체 가능 한 대상 을 배열 로 바 꾸 는 것 으로 설명 합 니 다.
여기 서 클래스 배열 은 key 를 숫자 로 하고 value 는 다른 유형의 대상 이 될 수 있 으 며 그의 실질 적 인 대상 은 key (키) 에 불과 하 다.그리고 js 에는 Object. values () 방법 이 있 습 니 다. 주어진 대상 자체 의 모든 속성 값 을 되 돌려 주 는 방법 입 니 다. 값 의 순 서 는 for... in 순환 의 순서 와 같 습 니 다. 먼저 Object. values 방법 을 사용 합 니 다.
var obj = {
    0:'3',
    1:{
        key:'  '
    },
    2:5,
}
console.log(Object.values(obj)) //[ '3', { key: '  ' }, 5 ]

다음은 Array. from ()
var obj = {
    0:'3',
    1:{
        key:'  '
    },
    2:5,
    length:3 //array.from      ,       length         (        ),        
}
console.log(Array.from(obj)) //[ '3', { key: '  ' }, 5 ]

한눈 에 보면 이 두 가지 방법의 용 도 는 똑 같 고 Array. from 이 더 귀 찮 은 것 같 습 니 다. (length 속성 을 더 해 야 하기 때 문 입 니 다) 그렇다면 왜 이런 새로운 방법 을 추가 하 셨 습 니까?우리 위의 속성 명 은 0, 1, 2 를 사용 합 니 다.우리 이제 1, 2, 5 로 바 꿔 보 자. 똑 같이 Object. values 부터 보 자.
var obj = {
    1:'3',
    2:{
        key:'  '
    },
    5:5,
}
console.log(Object.values(obj)) //[ '3', { key: '  ' }, 5 ]

여기에서 우 리 는 출력 이 속성 명 을 바 꾸 었 기 때문에 바 뀌 지 않 았 음 을 볼 수 있 습 니 다. 우 리 는 Array. from 을 계속 볼 수 있 습 니 다.
var obj = {
    1:'3',
    2:{
        key:'  '
    },
    5:5,
    length:3
}
console.log(Array.from(obj)) //[ undefined, '3', { key: '  ' } ]

여기 서 의 결 과 는 크게 달 라 졌 다. 심지어 undefined 도 나 타 났 다. 그리고 우리 의 속성 이름 이 5 인 속성의 값 은 나타 나 지 않 았 다. 나 는 이곳 을 본 친구 들 이 반드시 발견 했다 고 믿는다. 우리 가 Object. values 방법 을 사용 할 때 목표 대상 의 속성의 값 을 하나씩 꺼 내 서 배열 에 주 었 을 뿐이다.속성 이름 때문에 출력 결과 에 영향 을 주지 않 습 니 다.한편, Array. from 방법 은 우리 대상 의 속성 을 아래 표 (key 가 얼마 인지 아래 표 시 는 얼마 인지) 로 하고 length 는 출력 배열 의 길 이 를 규정 합 니 다. 속성 명 (즉 배열 의 아래 표) 이 경 계 를 넘 으 면 배열 에 도 이 값 이 없 을 것 입 니 다.length 범위 에 속 하지만 obj 속성 에 있 지 않 은 값 (즉, 우리 배열 의 첫 번 째) 은 undefined 입 니 다.우리 의 대상 에 속성 이름 이 0 인 속성 이 없 기 때문에 배열 의 이 값 은 undefined 입 니 다.

좋은 웹페이지 즐겨찾기