javascript - 비교 함수에 대한 질문
为情所困
为情所困 2017-07-05 11:06:44
0
4
839
으아악
为情所困
为情所困

모든 응답(4)
过去多啦不再A梦

특정 데이터 구조를 비교하기 위해 만들어진 도구 기능입니다. 예를 들어 데이터 구조 형식은 다음과 같습니다.

으아악

이때 일반적인 sort 메소드는 다음과 같은 형식으로 작성해야 합니다.

으아악

이 코드의 문제점:

  1. value 매개변수는 하드 코딩되어 있으므로 다른 필드를 정렬할 때 다시 코딩해야 합니다.

  2. 1 / -1을 반환하는 논리는 중복되고 지루합니다.

  3. Little Red Book 시대에는 정렬을 위해 익명 함수를 직접 작성하는 것이 충분히 가독성이 좋지 않았습니다(이제는 화살표 함수가 있으므로 실제로 큰 문제는 아닙니다).

그래서 위의 경우에 대해 Red Book의 저자는 [특정 필드 정렬] 기능을 생성하는 일반 도구 기능을 설계했습니다. 이 유틸리티 함수를 호출하면 반환되는 것은 정렬된 결과(고차 함수라고도 함)가 아니라 새 함수입니다.

이 패키지를 적용한 후의 코드는 다음과 같습니다.

으아악

이것은 비즈니스 로직을 단순화합니다.

淡淡烟草味

내가 이해하지 못하는 것은 두 개체의 특정 속성 크기를 비교하면
createComparisonFunction("test")({'test': 1}, {"test": 2})
-1

을 반환한다는 것입니다.
巴扎黑

함수를 호출할 때 두 단계로 살펴보세요. 먼저 createComparisonFunction()传入比较的字段。在createComparisonFunction()函数内,返回一个匿名函数。同时由于匿名函数处在createComparisonFunction()内,所以你对createComparisonFunction()传入的参数propertyName对匿名函数也有效存在。
通过上一步,你已经得到的匿名函数包含propertyName,此时你就可以传入你要比较的两个对象,在函数内比较他们的propertyName 속성을 통해 비교 결과를 반환합니다.

我想大声告诉你

이를 고차 함수라고 합니다.

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!