Porțiuni de subliniere sunt inspirate de sau împrumutate de la Oliver Steele lui funcțională, prototype.js și John Resig Micro-templating.
Se adaugă suport de programare funcțional, dar fără a extinde oricare dintre built-in JavaScript obiectelor.
Subliniere oferă funcții de 60 și ceva de care să sprijine atât suspecții funcționale obișnuite: harta, selectați, invoca & mdash; precum și ajutoare mai specializate: funcția de legare, JavaScript templating, testare adâncime egalitatea, și așa mai departe. Acesta delegați la built-in functii, dacă prezintă browsere, astfel moderne vor folosi implementările native ale foreach, harta, reduce, filtru, fiecare, unele și indexOf.
Porturile de Underscore.js sunt disponibile pentru:
PHP
Piton
Perl
Ce este nou în această versiune:
- Adaugă o metodă _.create, ca redusi Versiunea de Object.create.
- Funcționează în jurul unui bug iOS care poate provoca necorespunzător isArrayLike să fie JIT-ed. Stabilește, de asemenea o eroare la trecerea la 0 la isArrayLike.
Ce este nou în versiunea 1.8.2:
- Corecții / schimba unele vechi de Internet Explorer și Comportamentul legat caz margine.
Ce este nou în versiunea 1.7.0:
- Pentru consecvență și viteza pe diferite browsere, subliniere ignoră acum Metode matrice native pentru foreach, harta, reduce, reduceRight, filtru, fiecare, unii, indexOf și lastIndexOf. & Quot; Sparse & quot; matrice sunt oficial mort în subliniere.
- Adăugat _.iteratee pentru a personaliza iteratori folosite de funcții de colectare. Multe metode de subliniere va avea un argument șir de ușor căutările stil _.property, un obiect de filtrare stil _.where, sau o funcție ca un apel invers personalizat.
- Adaugat _.before ca o contrapartidă la _.after.
- Adăugat _.negate pentru a inversa valoarea de adevăr a unui predicat a trecut-in.
- Adăugat _.noop în funcție la îndemână placeholder gol.
- _. IsEmpty acum lucreaza cu obiecte argumente.
- _. A pazeste acum cu obiecte nullish.
- Metode de bază, cum ar fi Override fiecare, iar unele și vor fi folosite intern de alte funcții de subliniere prea.
- Funcțiile de evacuare se ocupe backticks (`), pentru a face cu o IE ≤ 8 bug.
- Pentru coerență, _.union și _.difference acum lucra doar cu tablouri și nu args variadic.
- _. Memoize expune cache de valori memoized ca o proprietate cu privire la funcția sa întors.
- _. Alege iteratee și argumente context acceptă un apel invers mai avansat.
- șabloane de subliniere nu mai accepta un obiect inițial de date. _.template returnează întotdeauna o funcție acum.
Ce este nou în versiunea 1.5.0:
- O hartă sursă este acum furnizat pentru depanare ușoară a minified producție construi de subliniere.
- Funcția implicite acum suprascrie doar valori nedefinite, cele care nu nule.
- Eliminat capacitatea de a apela _.bindAll fără argumente numele metodei. E destul de mult întotdeauna mai înțelept să-lista albă numele metodelor pe care doriți pentru a lega.
- Eliminat capacitatea de a apela _.after cu un număr de invocare a zero. Numărul minim de apeluri este (natural) acum 1.
Ce este nou în versiunea 1.4.4:
- Adaugat _.findWhere, pentru identificarea primul element într-o listă care se potriveste un anumit set de chei și valori.
- Adăugat _.partial, pentru aplicarea partial o functie fara a schimba referire dinamic la acest lucru.
- bind simplificată prin eliminarea unele cazuri marginale implică funcții constructor. Pe scurt:. Nu _.bind constructori tale
- O optimizare minor a invoca.
- Fix bug în versiunea minified datorită Minifier optimizarea-away incorect isFunction.
Ce este nou în versiunea 1.4.3:
- Adăugat un iterator implicit _.identity la countBy și groupBy.
- Funcția uniq poate lua acum matrice, iterator, context ca lista de argumente.
- Timpii întoarce acum gama mapate rezultatelor iteratori.
- simplificată și bug-uri fixate în acceleratie.
Ce este nou în versiunea 1.4.2:
- Pentru compatibilitate, a revenit la pre-1.4. 0 comportament la trecerea nul la funcțiile repetare. Ei devin acum nu-op din nou.
Ce este nou în versiunea 1.4.0:
- Adaugata o funcție de perechi, pentru a transforma un obiect JavaScript în [cheie, valoare] perechi ..., precum și o funcție obiect, de conversie o serie de [cheie, valoare] perechi într-un obiect.
- Adaugata o funcție countBy, pentru contorizarea numărului de obiecte dintr-o listă care se potrivesc anumite criterii.
- Adaugata o funcție invertit, pentru efectuarea unui simplu inversare a tastelor și valorile într-un obiect.
- Adaugata o funcție în cazul în care, pentru cazurile usoare de filtrare o listă de obiecte cu valori specifice.
- Adaugata o funcție omite, pentru filtrarea unui obiect pentru a elimina anumite chei.
- Adaugata o funcție aleatoare, pentru a reveni un număr aleatoriu într-un interval dat.
- _. Funcțiile debounce'd reveni acum ultima valoare actualizată, functii la fel ca _.throttle'd face.
- Funcția SortBy conduce acum un algoritm de sortare stabil.
- Adaugata opțiunea fromIndex opțional la indexOf și lastIndexOf.
- & quot; Sparse & quot; matrice nu mai sunt suportate în funcțiile repetare subliniaza. Utilizați o pentru locul (sau mai bine încă, un obiect).
- Funcțiile MIN și MAX pot fi acum chemat de tablouri foarte mari.
- Interpolare în șabloane reprezintă acum nulă și nedefinit ca șir gol.
Ce este nou în versiunea 1.3.2:
- adăugat funcția alege, care vă permite să filtrați un obiect literal cu o listă albă de nume de proprietate permise.
- adăugat funcția rezultat, pentru confortul atunci când lucrează cu API-uri care permit fie funcții sau proprietăți prime.
- adăugat funcția isFinite, pentru că, uneori știind că o valoare este un număr pur si simplu nu este destul.
- Funcția SortBy poate acum fi trecut numele șir de o proprietate de a utiliza ca ordinea de sortare pentru fiecare obiect.
- uniq fixe pentru a lucra cu matrice rare.
- Funcția diferență efectuează acum un superficial aplatiza în loc de adânc o atunci când calculul diferențelor matrice.
- Funcția debounce are acum un parametru imediat, ceea ce va determina apel invers la foc pe loc de frunte de marginea posterioară.
Ce este nou în versiunea 1.3.1:
- Adaugata o funcție _.has, ca sigur modalitate de a folosi hasOwnProperty.
- Adaugata _.collect ca un alias pentru _.map. Smalltalkers, bucurați-vă.
- Reverted o schimbare vechi, astfel încât _.extend va copia corect pe chei cu valori nedefinite din nou.
- Bugfix pentru a opri evadarea slash în interpolări în _.template.
Ce este nou în versiunea 1.3.0:.
- AMD (RequireJS) sprijin Eliminat din subliniere
Ce este nou în versiunea 1.2.4:
- Pot (și, probabil, ar trebui să) scrie _.chain (lista) în loc de _ (lista) .chain ().
- Fix pentru caractere scăpat din șabloane sublinia, precum și pentru sprijinirea particularizări de _.templateSettings care definesc doar una sau două dintre regexes necesare.
- Fix pentru trecerea unui array ca prim argument pentru o funcție _.wrap'd.
- Compatibilitate îmbunătățită cu ClojureScript, care adaugă o funcție de apel a String.prototype.
Ce este nou în versiunea 1.2.3:
- domeniu dinamic este acum păstrate pentru _.template compilat funcții, astfel încât să puteți utiliza valoarea acestui dacă doriți.
- sprijinul serie Sparse de _.indexOf, _.lastIndexOf.
- Atât _.reduce și _.reduceRight pot acum fi trecut o valoare explicit nedefinit.
Ce este nou în versiunea 1.2.2:
- trucurile continuat să semantică _.isEqual. Acum primitive JS sunt considerate echivalente cu versiunile lor împachetate, și matrice sunt comparate cu proprietățile lor numerice numai.
- _. Nu mai scăpa încearcă să fie inteligente despre care nu dublu-evadeze entități HTML deja scăpat. Acum doar scapă indiferent.
- În _.template, puteți pleca acum virgulă din declarații evaluate dacă doriți: & # x3c,%})% & # x3e, .
- _ după (apel invers, 0) va declanșa acum apel invers imediat, făcând & quot;. După & quot; mai ușor de utilizat, cu API-urile asincrone.
Ce este nou în versiunea 1.2.1:
- Mai multe corecții importante bug-uri pentru _.isEqual, care ar trebui să facă acum mai bine pe Arrays mutante, și pe non-Array obiecte cu proprietăți lungime.
- Pot acum _.groupBy (lista, "proprietate"), ca o comandă rapidă pentru gruparea valorilor de o anumită proprietate comună.
- _. Funcțiile throttle'd foc acum imediat după invocare, și sunt apoi limitate-rate.
- Cele mai multe dintre _.is [Type] nu mai verifică ducktype.
- Funcția _.bind acum, de asemenea, funcționează pe constructori, o-la ES5 ... dar niciodată nu ar dori să utilizeze _.bind pe o funcție constructor.
- _. Clone nu mai încheie tipuri non-obiect în obiecte.
- _. Găsi și _.filter sunt acum nume preferate pentru _.detect si _.select.
Ce este nou în versiunea 1.2.0:
- Funcția de _.isEqual suportă acum adevărat egalitate adâncime comparații, cu cecuri de structuri ciclice, datorită Kit Cambridge.
- modele sublinia sprijini acum HTML evadeze interpolări, folosind & # x3c,% - ...% & # x3e; sintaxă.
- Ryan Tenney contribuit _.shuffle, care foloseste o modificare Fisher-Yates pentru a vă oferi o copie a amestecat-o matrice.
- _. Uniq pot fi acum trecut un iterator opțional, pentru a stabili de ce criterii un obiect ar trebui să fie considerate unice.
- _. Dura acum are un argument opțional care va reveni ultimele n elemente ale listei.
- A fost adăugată o nouă funcție _.initial, ca o oglindă a _.rest, care returnează toate valorile inițiale ale unei liste (cu excepția ultimului N).
Ce este nou în versiunea 1.1.7:
- Adaugat _.groupBy, care agregate o colecție în grupuri de elemente, cum ar fi.
- _.union adăugată și _.difference, pentru a completa (re-numit) _.intersection.
- Diverse îmbunătățiri pentru sprijinirea matrice rare. _.toArray returnează acum o clona, dacă a trecut direct un tablou. _.functions acum întoarce, de asemenea, numele de funcții care sunt prezente în lanțul prototip.
Ce este nou în versiunea 1.1.6:
- _.after Adăugat, care va reveni o funcție că numai ruleaza dupa prima a fost numit un anumit număr de ori. _.invoke poate lua acum o referință funcție directă. _.every necesită acum o funcție iterator să fie adoptată, care reflectă API ECMA5. _.extend chei copii mai, atunci când valoarea este nedefinit. _.bind acum erori atunci când încearcă să se lege o valoare nedefinită.
Ce este nou în versiunea 1.1.4:
- îmbunătățită respectarea metodele Array ES5 când trece nul ca o valoare. _.wrap acum seturi corect acest lucru pentru funcția de împachetat. _.indexOf are acum un steag opțional pentru identificarea indicelui de inserție într-o matrice care este garantat de a fi deja sortate.
- Evitarea utilizării .callee, pentru a permite _.isArray să funcționeze corect în modul strict ES5 lui.
Ce este nou în versiunea 1.1.3:
- În CommonJS, subliniere poate acum fi necesară doar :
- var _ = necesită (& quot; subliniere & quot;). Funcțiile _.throttle adăugată și _.debounce.
- Eliminat _.breakLoop, în favoarea unui stil ECMA5 ne-break-capabil fiecare implementare - aceasta elimină try / catch, și veți avea acum urme stiva mai bune pentru excepții care sunt aruncate într-o iterator subliniere. Îmbunătățit familia isType de funcții pentru o mai bună interoperabilitate cu Internet Explorer obiecte gazdă. _.template acum scapă corect backslash în șabloane. Îmbunătățit compatibilitatea _.reduce cu versiunea ECMA5: dacă nu treci o valoare inițială, este folosit primul element din colecție. _.each nu mai revine colectarea reiterat, pentru o mai bună coerență cu foreach ECMA5 lui.
Ce este nou în versiunea 1.0.4:
- Funcția memoize _, care poate fi folosit pentru a. accelera calcule costisitoare repetate de cache rezultatele.
Ce este nou în versiunea 1.0.2:.
- _.isArguments fixe Opera
Comentariile nu a fost găsit