String 리터럴 하나와 객체 하나, 두 개의 배열이 있다고 가정해 보겠습니다.
const data = [{ name: 'Kamlesh Kapasi', uid: 123 }, { name: 'Mahesh Babu', uid: 129 }, { name: 'Akshay Kapoor', uid: 223 }, { name: 'Vikas Gupta', uid: 423 }, { name: 'Mohit Dalal', uid: 133 }, { name: 'Rajkumar Hirani', uid: 233 }, { name: 'Joy', uid: 127 }]; const names = ['Joy', 'Rajkumar Hirani', 'Akshay Kapoor', 'Mahesh Babu', 'Mohit Dalal', 'Kamlesh Kapasi', 'Vikas Gupta']
우리의 임무는 이름 배열을 반복하고 이름 배열에 나타나는 것과 같은 순서로 특정 이름의 uid를 포함하는 숫자 배열을 구성하는 함수를 작성하는 것입니다.
이 함수의 코드를 작성해 봅시다 -
예시
const data = [{ name: 'Kamlesh Kapasi', uid: 123 }, { name: 'Mahesh Babu', uid: 129 }, { name: 'Akshay Kapoor', uid: 223 }, { name: 'Vikas Gupta', uid: 423 }, { name: 'Mohit Dalal', uid: 133 }, { name: 'Rajkumar Hirani', uid: 233 }, { name: 'Joy', uid: 127 }]; const names = ['Joy', 'Rajkumar Hirani', 'Akshay Kapoor', 'Mahesh Babu', 'Mohit Dalal', 'Kamlesh Kapasi', 'Vikas Gupta'] const mapId = (arr, names) => { return names.reduce((acc, val) => { const index = arr.findIndex(el => el.name === val); return acc.concat(arr[index].uid); }, []); } console.log(mapId(data, names));
출력
콘솔의 출력은 다음과 같습니다. -
[ 127, 233, 223, 129, 133, 123, 423 ]