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

JavaScript의 조건에 따라 배열을 재정렬하시겠습니까?

<시간/>

카드 게임에서 일부 플레이어의 점수를 포함하는 개체 배열이 있다고 가정해 보겠습니다.

const scorecard = [{
   name: "Zahir",
   score: 23
}, {
      name: "Kabir",
      score: 13
}, {
      name: "Kunal",
      score: 29
}, {
      name: "Arnav",
      score: 42
}, {
      name: "Harman",
      score: 19
}, {
      name: "Rohit",
      score: 41
}, {
      name: "Rajan",
      score: 34
}];

우리는 또한 특정 플레이어의 이름을 포함하는 selfName이라는 이름의 변수를 가지고 있습니다 -

const selfName = 'Arnav';

스코어카드 배열을 알파벳순으로 정렬하고 selfName과 같은 이름을 가진 객체가 맨 위에 표시되도록 하는 함수를 작성해야 합니다(인덱스 0).

따라서 이 문제에 대한 코드를 작성해 보겠습니다 -

예시

const scorecard = [{
   name: "Zahir",
   score: 23
}, {
      name: "Kabir",
      score: 13
}, {
      name: "Kunal",
      score: 29
}, {
      name: "Arnav",
      score: 42
}, {
      name: "Harman",
      score: 19
}, {
      name: "Rohit",
      score: 41
}, {
      name: "Rajan",
      score: 34
}];
const selfName = 'Arnav';
const sorter = (a, b) => {
   if(a.name === selfName){
      return -1;
   };
   if(b.name === selfName){
      return 1;
   };
   return a.name < b.name ? -1 : 1;
};
scorecard.sort(sorter);
console.log(scorecard);

출력

콘솔의 출력은 다음과 같습니다. -

[
   { name: 'Arnav', score: 42 },
   { name: 'Harman', score: 19 },
   { name: 'Kabir', score: 13 },
   { name: 'Kunal', score: 29 },
   { name: 'Rajan', score: 34 },
   { name: 'Rohit', score: 41 },
   { name: 'Zahir', score: 23 }
]