inflearn logo
강의

Course

Instructor

[React Part 1] Learning React by Building and Comparing

[Recommended/Recent Searches] Recent Searches 1

sort() 질문 드립니다.

304

hjw120886379

14 asked

1

안녕하세요.

최근 검색어 구현 중 Store.js에서 스토리지의 historyData를 받아와서 sort를 할 때,

강의에서 나오는대로 > 부등호로 하면 정렬이 되지 않고

- 를 해줘야 내림차순으로 정렬이 됩니다.

 

왜 강의와 똑같이 부등호로 했을 때 정렬이 안되는 것일까요?

 

  getHistoryList() {
    return this.storage.historyData.sort(this._sortHistory); // 날짜 역순 정렬
  }

  _sortHistory(history1, history2) {
    // return history2.date > history1.date;
    return history2.date - history1.date;
  }

 

react mvc

Answer 2

1

jeonghwan

지원님 안녕하세요? 자바스크립트 배열의 sort 함수를 사용하실때 양수,음수,0을 반환하는 비교함수를 사용하는 것이 맞습니다. 제가 정확한 동작을 모르고 부등호를 사용한 것인데요. 이것은 브라우져 별로 코드를 평가하는 차이가 있는 것 같습니다. 지원님께서 사용하신 것처럼 - 연산자를 사용해 주세요.

비슷한 질문이 있어서 참고하시면 좋겠습니다.

1

hjw120886379

감사합니다!

0

communityai8509

안녕하세요, 인프런 AI 인턴입니다.

현지원님의 질문은 Array.prototype.sort() 함수의 사용 방법과 JavaScript에서 정렬 로직의 작동 방식에 관한 이해와 관련이 있습니다.

JavaScript에서 .sort() 메소드는 배열의 요소를 정렬할 때, 비교 함수를 제공할 수 있습니다. 비교 함수는 두 요소 a와 b를 비교하여 반환값에 따라 정렬 순서를 결정합니다. 반환 값이 음수이면 a가 b보다 앞에 오도록 정렬하고, 양수이면 b가 a보다 앞에 오도록 정렬합니다. 0이면 두 요소의 순서를 변경하지 않습니다.

강의에서 나온 부등호(>)를 사용한 방식이 정렬에 실패하는 경우는, 부등호를 사용하여 반환된 결과(true 또는 false)가 sort 메소드에 필요한 숫자 값(-1, 1, 0)로 직접적으로 변환되지 않기 때문입니다. - 연산자를 사용하면, 두 날짜의 차이를 숫자로 직접 반환하여 sort 함수가 이해할 수 있는 정수를 제공하여 정렬 조건을 충족시킵니다.

현지원님의 상황에 대해 유사한 문제 상황이 언급된 다음 질문&답변 게시글이 도움이 될 것 같습니다:

  • 데이터 sort 적용 문의에서는 sort 메소드의 콜백 함수에 대해 질문하고 있으며, 같은 함수에서 정렬이 제대로 작동하지 않는 문제를 다루고 있습니다.
  • 해당 답변에서는 sort 메소드에 사용되는 콜백 함수가 정수를 반환하도록 구현해야 한다는 설명이 있습니다. 특히 비교 연산자 대신 뺄셈 연산을 사용하면 기대하는 방식대로 정렬이 작동한다는 해결책을 제공합니다.

이 답변은 질문에서 언급한 문제의 원인과 해결 방안에 대해 직접적으로 관련이 있으며, Array.prototype.sort()의 사용 방식을 이해하는 데 도움이 될 것입니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

리액트 1,2부 이후 후속 강의나 준비 중인 다른 강의가 있으신가요?

1

90

2

super.show() 호출하는 이유가 궁금합니다.

1

81

2

class와 constructor를 이용한 객체 지향 프로그래밍

0

224

2

mvc 패턴 질문

0

197

2

Cannot read properties of undefined (reading 'props')

0

270

2

delegate, emit 필요한 이유

0

196

2

어떤거를 먼저 들어야 하는지 도와주세요

1

265

1

localhost:8080 접속 불가

1

282

1

최근검색어 3 풀이에서

1

188

1

import 문제

1

232

1

자동변환 관련

1

203

1

reset 시점에 searchResult 빈 배열로 update

2

311

2

Button에 Onclick사용

1

247

1

npx lite-server error 확인 요청드립니다.

1

470

2

node 20이상 쓸때 꿀팁

4

759

3

디버깅 관련질문이 있습니다.

1

295

1

[순수JS2]탭 3(풀이) 질문있습니다.

1

229

1

추상화를 어떻게 받아들이면 될까요??

1

435

1

[검색폼 1] View.js 파일 질문과 학습 질문

1

329

1

on 메서드 eventName 문의

1

266

1

import에 관해서 질문드립니다

1

254

1

view.js의 on 메소드에 대해 질문드립니다

1

258

1

componentDidMount에서 getKeywordList()를 하는 이유

1

241

1

[순수JS1]검색폼2_git branch 이동관련

1

279

1