소개
이 랩에서는 원본 객체를 변경하지 않고 객체의 키 - 값 쌍을 반전시키는 방법을 살펴봅니다. Object.keys() 메서드와 Array.prototype.reduce()를 사용하여 객체를 반전시킬 것입니다. 또한, 반전된 키에 함수를 적용하고 반전된 값을 생성하는 데 책임이 있는 키의 배열을 반환하는 방법을 배웁니다.
객체 반전 함수
원본 객체를 변경하지 않고 객체의 키 - 값 쌍을 반전시키려면 invertKeyValues 함수를 사용하십시오.
터미널/SSH 에서
invertKeyValues(obj, fn)을 입력하여 함수를 호출합니다. 여기서obj는 반전시킬 객체이고fn은 반전된 키에 적용할 선택적 함수입니다.Object.keys()및Array.prototype.reduce()메서드는 반전된 키 - 값 쌍을 가진 새 객체를 생성하는 데 사용되며, 함수가 제공되면 각 반전된 키에 적용됩니다.fn이 생략되면 함수는 함수가 적용되지 않은 반전된 키만 반환합니다.이 함수는 각 반전된 값이 반전된 값을 생성하는 데 책임이 있는 키의 배열인 객체를 반환합니다.
const invertKeyValues = (obj, fn) =>
Object.keys(obj).reduce((acc, key) => {
const val = fn ? fn(obj[key]) : obj[key];
acc[val] = acc[val] || [];
acc[val].push(key);
return acc;
}, {});
사용 예시:
invertKeyValues({ a: 1, b: 2, c: 1 }); // { 1: [ 'a', 'c' ], 2: [ 'b' ] }
invertKeyValues({ a: 1, b: 2, c: 1 }, (value) => "group" + value);
// { group1: [ 'a', 'c' ], group2: [ 'b' ] }
요약
축하합니다! 객체 반전 랩을 완료했습니다. LabEx 에서 더 많은 랩을 연습하여 기술을 향상시킬 수 있습니다.