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

Bất kỳ cách nào để giải quyết điều này mà không cần nối hai mảng này để nhận được các đối tượng có giá trị cao hơn?


Để nhận các đối tượng có thuộc tính cụ thể, hãy sử dụng khái niệm Reduce () trên cả hai mảng riêng lẻ. Bạn không cần phải nối. Giả sử sau đây là các đối tượng của chúng tôi có tên sinh viên và điểm học tập

 var sectionAStudentDetails =[{studentName:'John', studentMarks:78}, {studentName:'David', studentMarks:65}, {studentName:'Bob', studentMarks:98}]; let sectionBStudentDetails =[{studentName :'John', studentMarks:67}, {studentName:'David', studentMarks:89}, {studentName:'Bob', studentMarks:97}]; 

Sau đây là mã để triển khai Reduce () trên cả hai và tìm nạp đối tượng có giá trị cao hơn (dấu) -

Ví dụ

 var sectionAStudentDetails =[{studentName:'John', studentMarks:78}, {studentName:'David', studentMarks:65}, {studentName:'Bob', studentMarks:98}]; let sectionBStudentDetails =[{studentName :'John', studentMarks:67}, {studentName:'David', studentMarks:89}, {studentName:'Bob', studentMarks:97}]; function concatTwoArraysWithoutConcatFunction (arrayValues, k) {const beforeValue =arrayValues ​​[k. tên học sinh]; if (! beforeValue || k.studentMarks> =beforeValue.studentMarks) arrayValues ​​[k.studentName] =k; return arrayValues;} const setionA =sectionAStudentDetails.reduce (concatTwoArraysWithoutConcatFunction, {}); const sectionB =sectionBStudentDetails.reduce (concatTwoArraysWithoutConcatFunction, sepretionA); console.log (Object.values ​​(sectionB));  

Để chạy chương trình trên, bạn cần sử dụng lệnh sau -

 node fileName.js. 

Đây, tên tệp của tôi là demo84.js.

Đầu ra

Điều này sẽ tạo ra kết quả sau -

 PS C:\ Users \ Amit \ JavaScript-code> node demo84.js [{studentName:'John', studentMarks:78}, {studentName:'David', studentMarks:89}, {studentName:'Bob' , studentMarks:98}]