-
[Javascript] 자바스크립트 Object.values 메서드 이해하기프로그래밍 이야기/JavaScript 공부 2020. 7. 27. 00:44
Object.values 메서드란?
Obejct.values() 메서드는 메서드를 호출할 때 파라미터로 전달한 객체가 가지는 프로퍼티들의 프로퍼티 값들만 묶어서 배열로 반환해주는 메서드이다.
Object.keys()와 거의 비슷하다고 볼 수 있다. 메서드 이름 따라 keys는 key들을 모아서 배열로, Object.values는 value들을 모아서 배열로 만들어 주는 메서드라고 생각하면 되겠다.
문법
Object.values(obj);
Object.values 메서드의 기본 문법도 keys메서드와 동일하게 그냥 이름 그대로 Object 객체에 values 메서드를 호출하고 파라미터로 프로퍼티 값을 알아내고자 하는 객체를 전달해주면 된다.
const myObject = { name: '싹쓰리', enName: 'SSAK3', members: ['유두래곤', '린다G', '비룡'], genre: 'Dance & pop', agency: 'MBC', making: '놀면뭐하니?' } const myValues = Object.values(myObject); console.log(myValues); // (6) ["싹쓰리", "SSAK3", Array(3), "Dance & pop", "MBC", "놀면뭐하니?"]
Object.values() 메서드도 역시, 객채가 가지고 있는 메서드를 사용하는 것이 아니라, Object라는 내장 객체의 메서드로 사용하고, 파라미터로 우리가 만든 객체를 집어넣어줘야 하기 때문에 myObject.values()처럼 사용하지 않도록 주의해야 한다.
const myObject = { name: '싹쓰리', enName: 'SSAK3', members: ['유두래곤', '린다G', '비룡'], genre: 'Dance & pop', agency: 'MBC', making: '놀면뭐하니?' } const myValues = myObject.values(); console.log(myValues);
역시 일반적으로 우리가 생성한 객체에 values라는 메서드는 존재하지 않는다.
배열에도...?
const myArray = ['유고스타', '유산슬', '유라섹', '유르페우스', '유DJ뽕디스파뤼', '유샘', '닭터유', '유두래곤']; const myValues = Object.values(myArray); console.log(myValues); // (8) ["유고스타", "유산슬", "유라섹", "유르페우스", "유DJ뽕디스파뤼", "유샘", "닭터유", "유두래곤"]
배열도 객체이기 때문에 배열도 얼마든지 활용할 수 있다.
하지만 배열에 사용할 경우에는 어차피 같은 배열이 반환되기 때문에, 큰 의미는 없다.
const myArray = ['유고스타', '유산슬', '유라섹', '유르페우스', '유DJ뽕디스파뤼', '유샘', '닭터유', '유두래곤']; const myValues = Object.values(myArray); console.log(myValues); // (8) ["유고스타", "유산슬", "유라섹", "유르페우스", "유DJ뽕디스파뤼", "유샘", "닭터유", "유두래곤"] console.log(myArray === myValues); // false
그런데 만약 배열을 복사하려는 목적이였다면 어느 정도 의미가 있을 수는 있겠다.
Object.values메서드에 의해 복사된 배열이 반환되기 때문에, 서로 다른 주소 값을 가지게 되고 위 코드의 마지막 줄에서 확인할 수 있듯 두 배열을 가지고 일치 비교하게되면 false 값이 나오는 걸 확인할 수 있다.
'프로그래밍 이야기 > JavaScript 공부' 카테고리의 다른 글
[JavaScript] 자바스크립트 reduce 메서드 이해하기 (2) 2021.05.05 [JavaScript] 자바스크립트 전개 구문(spread syntax) 이해하기 (0) 2020.07.31 [Javascript] 자바스크립트 Object.keys 메서드 이해하기 (0) 2020.07.26 [JavaScript] 자바스크립트 for...of 반복문 이해하기 (2) 2020.07.24 [JavaScript] 자바스크립트 forEach 메서드 이해하기 (8) 2020.07.22