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

JavaScript에서 두 가지 속성으로 객체 배열 정렬

<시간/>

다음과 같은 객체 배열이 있다고 가정해 보겠습니다. -

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", resPhoto:"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 }]; 

우리는 그러한 객체 배열 중 하나를 취하는 JavaScript 함수를 작성해야 합니다. 함수는 두 가지 다른 속성을 기반으로 이 배열을 정렬해야 합니다. -

  • 더 높은 "resFlow" 값으로 정렬,

  • 그러나 "resHP" 값이 가장 낮습니다.

접근

우리는 지정된 키 순서와 정렬 순서에 대해 연결 접근 방식을 사용하고 있습니다.

배열은 속성에 따라 정렬됩니다 -

  • resHP, 오름차순 및

  • resFlow, 내림차순.

델타 계산과 함께 작동하며 이는 두 객체의 관계를 반영합니다. 값이 0이면 두 값이 같고 다음 델타가 계산되어 반환됩니다.

예시

이에 대한 코드는 -

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", resPhoto:"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);

출력

콘솔의 출력은 -

[ { resVal:'25FA15', resFlow:49, resName:'Rendimiento Tri−Seal Completo', resPhoto:'Tri−Sealseries.png', resHP:1.5 }, { resVal:'35FA2', resFlow:59 , resName:'하이캡 렌디미엔토 완성', resPhoto:'HighCapseries.png', resHP:2 }, { resVal:'45FA2', resFlow:53, resName:'하이캡 렌디미엔토 완성', resPhoto:'HighCapseries. png', resHP:2 }, { resVal:'25FA2', resFlow:52, resName:'Rendimiento Tri−Seal Completo', resPhoto:'Tri−Sealseries.png', resHP:2 }]