Lodash 참조, 내가 좋아하는 방법 사용

17318 단어 javascript
대부분의 프로그래밍 언어에는 실용 함수 라이브러리가 있는데 이러한 언어의 기본 조작과 내장 함수를 보충할 수 있다.일부 언어는 개발자가 사용할 수 있도록 지역사회에서 지원하는 대형 실용 함수 라이브러리도 있다.Lodash는 바로 이런 자바스크립트 라이브러리입니다.
Lodash의 중점은 함수식 프로그래밍이다.Lodash는 Javascript에서 흔히 볼 수 있는 몇 가지 동작을 사용하고 함수식 프로그래밍 형식으로 이 동작을 제공합니다.결과적으로 코드가 더욱 짧고 치밀하다.그러나 Lodash에서 제공하는 유일한 기능은 아닙니다.그것은 또한 문자열 조작, 수학, 목록/그룹 함수를 가지고 있다.
나는 내가 함수 프로그래밍에 좀 약하다는 것을 인정한다. 그래서 이 글에서 나는 모든 함수 프로그래밍 함수를 포함하지 않았다. 그러나 나는 일반 함수와 유사한 함수를 포함하고 있다. 다시 말하면 내가 좋아하는 함수이기 때문에 개의치 마라.😅
로더스는 밑줄의 영향을 받았다.js, 이것은 반대로 원형의 영향을 받는다.js, 이 두 유틸리티 라이브러리는 모두 Lodash와 비슷합니다.그 중 많은 것이 밑줄이다.js 개발자가 현재 Lodash를 유지하고 있기 때문에 이 라이브러리의 업데이트 횟수가 밑줄을 초과했습니다.(Prototype.js는 대량으로 사용되는 라이브러리로 위키백과에 따르면 2.2% of all websites에 의해 사용되고 광범위하게 필요한 편의 기능을 제공한다. 미래의 게시물에 이 라이브러리를 소개할 수 있다.)

장치
자, 이 라이브러리를 얻기 시작합시다.브라우저 스크립트 및 NPM 모듈로 사용할 수 있습니다.NPM 모듈은 일반적으로 NPM 또는 거즈와 함께 설치할 수 있습니다.
npm install --save lodash
var _ = require('lodash');을 사용하여 가져옵니다.브라우저 스크립트는 <script src="lodash.js"></script>과 함께 HTML에 포함될 수 있습니다.
이렇게!지금 로다스 도서관 전체가 네 손끝에 있다.
그러나 노드에서 가져올 때는 각별한 주의가 필요하다.Lodash의 노드 버전에서는 일부 모듈만 가져올 수 있습니다.site에서 다음과 같은 다른 부품을 가져올 수 있습니다.
// Load the full build.
var _ = require('lodash');
// Load the core build.
var _ = require('lodash/core');
// Load the FP build for immutable auto-curried iteratee-first data-last methods.
var fp = require('lodash/fp');

// Load method categories.
var array = require('lodash/array');
var object = require('lodash/fp/object');

// Cherry-pick methods for smaller browserify/rollup/webpack bundles.
var at = require('lodash/at');
var curryN = require('lodash/fp/curryN');

기능
Lodash에는 다양한 유형의 방법이 있는데, 나는 다른 부분에서 그것들을 분해할 것이다.분명히 나는 모든 내용을 포괄하지 않고 주요 내용만 포괄한다(나의 의견에 달려 있다)🙂)
전체 Lodash 라이브러리에서 변수 _을 가져온 것으로 가정합니다.밑줄은 일반적으로 이 변수를 가져오기 때문에 라이브러리가 "Lodash"로 명명된 부분입니다.공식 문서가 가장 쉽게 접근할 수 있는 형식으로 이 기능들을 보여줬다고 할 수 있지만 다른 곳에 두는 것은 나쁘지 않다.

배열 함수_.chunk(array, [size=1]): 그룹을 블록으로 나누기

Creates an array of elements split into groups the length of size. If array can't be split evenly, the final chunk will be the remaining elements.

_.compact(array): 그룹에서 가짜 값 삭제

Creates an array with all falsey values removed. The values false, null, 0, "", undefined, and NaN are falsey.

_.concat(array, [values]): 연결 그룹

Creates a new array concatenating array with any additional arrays and/or values.

_.drop(array, [n=1]): 처음부터 그룹 요소 삭제

Creates a slice of array with n elements dropped from the beginning.

_.dropRight(array, [n=1]): 끝에서 배열 요소 제거

Creates a slice of array with n elements dropped from the end.

_.flattenDeep(array): 플랫 패키지 그룹

Recursively flattens array.

_.reverse(array): 반전수 그룹

Reverses array so that the first element becomes the last, the second element becomes the second to last, and so on.

Note: This method mutates array and is based on Array#reverse.

_.slice(array, [start=0], [end=array.length]): 그룹을 만드는 슬라이드

Creates a slice of array from start up to, but not including, end.

Note: This method is used instead of Array#slice to ensure dense arrays are returned.

_.uniq(array): 중복값이 없는 그룹 던전 만들기

Creates a duplicate-free version of an array, using SameValueZero for equality comparisons, in which only the first occurrence of each element is kept. The order of result values is determined by the order they occur in the array.

_.without(array, [values]): 그룹에서 값 선별

Creates an array excluding all given values using SameValueZero for equality comparisons.



수집 기능
집합은 일련의 항목일 수도 있고 하나의 그룹이 될 수도 있음을 일깨워 줍니다.수조 보증 항목은 순서대로 교체되며, 집합이 하나의 집합이면 무작위 순서대로 교체됩니다._.forEach(collection, [iteratee=_.identity]): 집합마다 함수를 호출합니다.

Iterates over elements of collection and invokes iteratee for each element. The iteratee is invoked with three arguments: (value, index|key, collection). Iteratee functions may exit iteration early by explicitly returning false.

_.every(collection, [predicate=_.identity]): 모든 집합 원소가 진짜인지 테스트 표현식

Checks if predicate returns truthy for all elements of collection. Iteration is stopped once predicate returns falsey. The predicate is invoked with three arguments: (value, index|key, collection).

Note: This method returns true for empty collections because everything is true of elements of empty collections.

_.some(collection, [predicate=_.identity]): 모든 집합 요소의 표현식이 진짜인지 테스트

Checks if predicate returns truthy for any element of collection. Iteration is stopped once predicate returns truthy. The predicate is invoked with three arguments: (value, index|key, collection).

_.filter(collection, [predicate=_.identity]): 새 집합을 되돌려줍니다. 그 중 항목은 선택한 술어 표현식과 일치하지 않습니다.

Iterates over elements of collection, returning an array of all elements predicate returns truthy for. The predicate is invoked with three arguments: (value, index|key, collection).

_.find(collection, [predicate=_.identity], [fromIndex=0]): 술어 표현식과 일치하는 첫 번째 집합 항목의 인덱스를 되돌려줍니다.

Iterates over elements of collection, returning the first element predicate returns truthy for. The predicate is invoked with three arguments: (value, index|key, collection).

_.includes(collection, value, [fromIndex=0]): 항목이 집합 중인지 확인합니다.

Checks if value is in collection. If collection is a string, it's checked for a substring of value, otherwise SameValueZero is used for equality comparisons. If fromIndex is negative, it's used as the offset from the end of collection.

_.sample(collection): 집합에서 무작위 원소 획득

Gets a random element from collection.

_.sampleSize(collection, [n=1]): 집합에서 n개의 랜덤 원소 획득

Gets n random elements at unique keys from collection up to the size of collection.

_.shuffle(collection): 원시 집합에서 카드를 씻은 요소의 집합을 되돌려줍니다

Creates an array of shuffled values, using a version of the Fisher-Yates shuffle.



수학 함수
우리는 add, ceil, divide, floor, max, mean, min, multiply, round, subtractsum 함수를 가지고 있습니다. 만약에 수학에 정통하면 이 함수들은 당신이 기대하는 효과에 도달할 것입니다.나는 이것들은 소개할 필요가 없다고 생각한다.

날짜 함수
이런 방법은 단지 하나, 즉 now이다._.now(): 현재 시간으로 돌아가기(밀리초 단위, 역원부터)

Gets the timestamp of the number of milliseconds that have elapsed since the Unix epoch (1 January 1970 00:00:00 UTC).



함수 방법_.after(n, func): 함수 func이 되돌아온 후 after을 한 번 또는 여러 번 호출합니다.

This method creates a function that invokes func once it's called n or more times.


예:
var saves = ['profile', 'settings'];

var done = _.after(saves.length, function() {
  console.log('done saving!');
});

_.forEach(saves, function(type) {
  asyncSave({ 'type': type, 'complete': done });
});
// => Logs 'done saving!' after the two async saves have completed.
n: 대상에 귀속된 _.bind(func, thisArg, [partials])의 함수를 만듭니다.thisArg은 매개 변수 목록에 적용됩니다.일부 섹션에서는 자리 표시자 값 partials(Lodash에서 가져온 변수)을 사용하여 일부 매개변수 적용을 건너뛸 수 있습니다.연결되지 않은 매개 변수로 _ ed 함수를 호출할 때 특정 숫자 뒤에 매개 변수를 적용할 수 있습니다.

Creates a function that invokes func with the this binding of thisArg and partials prepended to the arguments it receives.

The _.bind.placeholder value, which defaults to _ in monolithic builds, may be used as a placeholder for partially applied arguments.

Note: Unlike native Function#bind, this method doesn't set the "length" property of bound functions.


function greet(greeting, punctuation) {
  return greeting + ' ' + this.user + punctuation;
}

var object = { 'user': 'fred' };

var bound = _.bind(greet, object, 'hi');
bound('!');
// => 'hi fred!'

// Bound with placeholders.
var bound = _.bind(greet, object, _, '!');
bound('hi');
// => 'hi fred!'
bind(): _.debounce(func, [wait=0], [options={}])을 호출하고 호출 사이의 func밀리초 지연 함수를 만듭니다.

Creates a debounced function that delays invoking func until after wait milliseconds have elapsed since the last time the debounced function was invoked. The debounced function comes with a cancel method to cancel delayed func invocations and a flush method to immediately invoke them.

wait: _.delay(func, wait, [args])밀리초 후 func으로 전화하세요.

Invokes func after wait milliseconds. Any additional arguments are provided to func when it's invoked.

wait: _.memoize(func, [resolver])의 결과를 반환 변수의 캐시에 저장한다(결과를 기억하는 것은 캐시라고도 부른다. 반환 함수를 호출할 때 캐시를 사용하는 결과가 아니라 두 번째로 func을 호출하는 결과라고도 한다).
Javascript에는 함수 변수가 있을 수 있지만, func 값의 임의의 속성, 즉 Object이 되돌아오는 변수를 가지고 있다.

Creates a function that memoizes the result of func. If resolver is provided, it determines the cache key for storing the result based on the arguments provided to the memoized function. By default, the first argument provided to the memoized function is used as the map cache key. The func is invoked with the this binding of the memoized function.

memoize: _.throttle(func, [wait=0], [options={}])을 기반으로 한 함수를 되돌려줍니다. 이 함수는 실행 시간을 func밀리초마다 제한합니다.
나는 이 일을 좀 일찍 알았으면 좋겠다.이것은 나의 이전 게시물에 매우 도움이 된다.
내가 알기로는 wait과 차이점은 debouncedebounce의 매번 집행에 대해 func의 시간이 지나갈 때까지 줄을 서기 때문에 최종적으로 wait에 대한 대량의 호출이 동시에 발생할 것이다.그러나 func시간이 지나지 않으면 이 함수는 호출을 완전히 포기합니다.이 두 사람 사이의 차이를 설명하는 데 도움이 되는 글도 있는데 이름은 Debouncing and Throttling Explained Through Examples이기 때문에 꼭 확인해 보세요.

저희 끝났어요.
만약 당신이 이 문장에서 어떤 잘못을 보았다면, 내가 그것들을 바로잡을 수 있도록 나에게 알려 주십시오.
자료 출처:
https://lodash.com/docs/4.17.15

좋은 웹페이지 즐겨찾기