Computer >> Máy Tính >  >> Lập trình >> Javascript

JavaScript Đối sánh giữa 2 mảng

Giả sử, chúng ta có hai mảng, một mảng là chuỗi ký tự và một mảng khác gồm các đối tượng.

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']

Công việc của chúng ta là viết một hàm lặp qua mảng tên và tạo một mảng Số có chứa tên cụ thể theo thứ tự giống như chúng xuất hiện trong mảng tên.

Hãy viết mã cho chức năng này -

Ví dụ

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));

Đầu ra

Đầu ra trong bảng điều khiển sẽ là -

[
   127, 233, 223,
   129, 133, 123,
   423
]