살펴볼 내용

객체에 저장된 값 다루기

function incrementField(item, field) {
		const value = item[field]; // 조회
		const newValue = value + 1; // 바꾸기
		const newItem = objectSet(item, field, newValue); // 설정
		return newItem;
}

function halveField(item, field) {
		const value = item[field]; // 조회
		const newValue = value / 2; // 바꾸기
		const newItem = objectSet(item, field, newValue); // 설정
		return newItem;
}
function incrementField(item, field) {
		return update(item, field, (value) => (value + 1))
}

function halveField(item, field) {
		return update(item, field, (value) => (value / 2))
}
function update(object, key, modify) {
		const value = object[key];
		const newValue = modify(value);
		const newObject = objectSet(object, key, newValue);
}

update()에 전달하는 함수는 값 하나를 인자로 받아 객체에 적용한다. (외과 수술 같다고 함)

update() 동작과정 톺아 보기

const shoes = {
		name: "shoes",
		quantity: 3,
		price: 7
}

update(shoes, 'quantity', (value) => (value * 2)))
  1. const value = object[key] 키를 가지고 객체에서 값을 조회 → { name: "shoes", quantity: 3, price: 7 }
  2. const newValue = modify(value) 현재 값으로 modify()를 불러 새로운 값을 생성 → modify(3) = 6
  3. const newObject = objectSet(object, key, newValue) 복사본 생성 → { name: "shoes", quantity: 6, price: 7 }

객체에서 중첩된 데이터 다루기