지난 글에서 만든 객체를 그대로 가지고 와서 객체 접근을 정리해보려고 한다.

var ahyun = {
	name : 'ahyun', 
    age : 25,
    hi : function(){
    	console.log(this.name +' '+ 'hello!'
    }
}

✅ key값으로 value값 찾기

1. 객체.key : 마침표로 접근

console.log(ahyun.name); // 'ahyun'
console.log(ahyun.age); // 25
console.log(ahyun.hi()); // 'ahyun hello!'

2. 객체['key'] : 대괄호로 접근, 따옴표로 감싸기

console.log(ahyun['name']); // 'ahyun'
console.log(ahyun['age']); // 25
console.log(ahyun['hello']()); //  'ahyun hello!'

✅ key값, value값 배열로 반환

Object.keys() : 객체의 키값들을 배열로 반환

console.log(Object.keys(ahyun)); // ['name', 'age', 'hi']

Object.values() : 객체의 속성값들을 배열로 반환

console.log(Object.values(ahyun)); // ['ahyun', 25, ƒ]

✅ value값으로 key값 찾기

  • Object.keys()를 통해서 객체의 key값들의 배열을 뽑아내고
  • 배열에서 해당 키의 객체 값과 value를 비교해서 값을 찾아낸다
  • Array.find()
    • 주어진 판별 함수를 만족하는 첫 번째 요소의 값을 반환한다.
    • 없다면 undefined를 반환
function getKeyByValue(obj, value) {
	return Object.keys(obj).find(key => obj[key] === value);
}

let myObj = {1: 'a', 2: 'b', 3: 'c', 4: 'd'};

let key = getKeyByValue(myObj, 'c');
console.log(key); // 3

key = getKeyByValue(myObj, 'a');
console.log(key); // 1

key = getKeyByValue(myObj, 'javascript');
console.log(key); // undefined
  • find()
    const arr1 = [5, 12, 8, 130, 44];
    const found = arr1.find(element => element > 10);
    console.log(found); // 12

참고
https://codechacha.com/ko/javascript-find-key-by-value/

profile
PM을 지향하는 FE 개발자 이아현입니다 :)

0개의 댓글

Powered by GraphCDN, the GraphQL CDN