Computer >> 컴퓨터 >  >> 프로그램 작성 >> JavaScript

두 배열 간의 JavaScript 일치

<시간/>

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
]