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

Sắp xếp Mảng đối tượng theo hai thuộc tính trong JavaScript

Giả sử, chúng ta có một mảng các đối tượng như thế này -

 const arr =[{resVal:"25FA15", resFlow:49, resName:"Rendimiento Tri-Seal Completo", resPhoto:"Tri-Sealseries.png", resHP:1.5}, {resVal:"25FA2", resFlow:52, resName:"Rendimiento Tri-Seal Completo", res Ảnh:"Tri-Sealseries.png", resHP:2}, {resVal:"45FA2", resFlow:53, resName:"Rendimiento Hi − Cap Completo", resPhoto:"HighCapseries.png", resHP:2}, {resVal:"35FA2", resFlow:59, resName:"Rendimiento Hi-Cap Completo", resPhoto:"HighCapseries.png", resHP:2}];  

Chúng tôi được yêu cầu viết một hàm JavaScript có một mảng các đối tượng như vậy. Hàm sẽ sắp xếp mảng này dựa trên hai thuộc tính khác nhau -

  • sắp xếp theo giá trị "resFlow" cao hơn,

  • nhưng có giá trị "resHP" thấp nhất.

Phương pháp tiếp cận

Chúng tôi đang sử dụng cách tiếp cận theo chuỗi cho một thứ tự khóa cụ thể và thứ tự sắp xếp của chúng.

Mảng được sắp xếp theo các thuộc tính -

  • resHP, tăng dần và

  • resFlow, giảm dần.

Nó hoạt động với việc tính toán delta và điều này phản ánh mối quan hệ của hai đối tượng. Nếu giá trị bằng 0 thì hai giá trị bằng nhau và dấu tam giác tiếp theo sẽ được tính và trả về.

Ví dụ

Mã cho điều này sẽ là -

 const arr =[{resVal:"25FA15", resFlow:49, resName:"Rendimiento Tri-Seal Completo", resPhoto:"Tri-Sealseries.png", resHP:1.5}, {resVal:"25FA2", resFlow:52, resName:"Rendimiento Tri-Seal Completo", res Ảnh:"Tri-Sealseries.png", resHP:2}, {resVal:"45FA2", resFlow:53, resName:"Rendimiento Hi − Cap Completo", resPhoto:"HighCapseries.png", resHP:2}, {resVal:"35FA2", resFlow:59, resName:"Rendimiento Hi-Cap Completo", resPhoto:"HighCapseries.png", resHP:2}]; const sortByTwo =(arr =[]) => {arr.sort ((a, b) => {return a.resHP - b.resHP || b.resFlow - a.resFlow;});}; sortByTwo (arr); console.log (arr); 

Đầu ra

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

 [{resVal:'25FA15', resFlow:49, resName:'Rendimiento Tri-Seal Completo', resPhoto:'Tri-Sealseries.png', resHP:1.5}, {resVal:'35FA2', resFlow:59 , resName:'Rendimiento Hi-Cap Completo', res Ảnh:'HighCapseries.png', resHP:2}, {resVal:'45FA2', resFlow:53, resName:'Rendimiento Hi-Cap Completo', ảnh chụp lại:'HighCapseries. png ', resHP:2}, {resVal:' 25FA2 ', resFlow:52, resName:' Rendimiento Tri-Seal Completo ', res Ảnh:' Tri-Sealseries.png ', resHP:2}]