Lodash ve alt çizgi arasındaki farklar [kapalı]


1602

Neden biri lodash.js veya underscore.js yardımcı programı kitaplığını diğerine tercih etsin ?

Lodash, alt çizginin yerine geçiyor gibi görünüyor, ikincisi daha uzun sürdü.

Her ikisinin de parlak olduğunu düşünüyorum, ancak eğitimli bir karşılaştırma yapmak için nasıl çalıştıkları hakkında yeterince bilgim yok ve farklılıklar hakkında daha fazla bilgi edinmek istiyorum.


2
Github sayfasında bağlantısı olan lodash ile ilgili bazı ekran yayınlarına göz atmak isteyebilirsiniz . Şahsen underscore.js kullanıyordum, ama daha çok çünkü bununla başladım ve dediğin gibi daha uzun sürdü.
Jack

26
lodashve şimdi birleştirme iş parçacığıunderscore altında
zangw

Yanıtlar:


2023

Ben diziler, dizeleri, nesneler için daha tutarlı ortamlar arası yineleme desteği sağlamak için Lo-Dash oluşturulur ve argumentsnesneler 1 . O zamandan beri daha tutarlı API davranışı, daha fazla özellik (AMD desteği, derin klon ve derin birleştirme gibi), daha kapsamlı dokümantasyon ve birim testleri (Düğüm, Ringo, Rhino, Narwhal, PhantomJS'de çalışan testler) sağlayan, Undercore'un bir üst kümesi haline geldi. ve tarayıcılar), büyük diziler / nesne yinelemesi için daha iyi genel performans ve optimizasyonlar ve özel derlemeler ve şablon ön derleme yardımcı programları ile daha fazla esneklik sağlar .

Lo-Dash, Underscore'dan daha sık güncellendiğinden, Underscore'un en son kararlı sürümüyle uyumluluk sağlamak için bir lodash underscoreyapı sağlanır .

Bir noktada , kısmen Lo-Dash'in 30'dan fazla konuyu gündeme getirmesinden sorumlu olduğu için, Undercore'a push erişimi bile verildi ; underscore v1.4.x + 'da iniş hata düzeltmeleri, yeni özellikler ve mükemmel kazançlar.

Ek olarak, varsayılan olarak Lo-Dash'i içeren en az 3 Omurga kazan plakası vardır ve Lo-Dash artık Backbone'un resmi belgelerinde belirtilmiştir .

Lo-Dash ve Underscore arasındaki farkların daha derin bir dökümü için Kit Cambridge'in Lo-Dash'e "Merhaba" deyin .

Dipnotlar:

  1. Alt çizgi, diziler, dizeler, nesneler ve argumentsnesneler için tutarsız bir desteğe sahiptir . Daha yeni tarayıcılarda, Alt çizgi yöntemleri dizilerdeki delikleri yok sayar , "Nesneler" yöntemleri argumentsnesneleri yineler , dizeler dizi benzeri olarak işlenir ve yöntemler işlevleri ("prototip" özelliğini yoksayarak) ve nesneleri ("toString" gibi gölgeli özellikleri yineleyerek ve "valueOf"), eski tarayıcılarda bunu yapmayacaklardır. Ayrıca, _.clonedizilerdeki delikleri korumak gibi alt çizgi yöntemleri , diğerleri ise sevmez _.flatten.

174
@Brian - Lo-Dash geliştirirken "Birisi, Lo-Dash, Underscore ile karşılaştırıldığında negatif olarak ne işaret edebilir?" ve sonra onlara hitap edin. Bu yüzden belgeleri güçlendirdim, özel derlemeler ekledim ve kaynağı daha okunabilir hale getirdim.
John-David Dalton

10
Bazı ölçütler yayınlamak çok cazip, ama bu sıkıcı olabilir. Çalıştırdığım her kıyaslamanın Lo-Dash'i alt çizgiden daha hızlı ( birçok durumda ÇOK daha hızlı) kanıtladığını söylemek yeterli .
Wil Moore III

186
Lo-dash'i seviyorum ve kullanıyorum, lütfen dayak yaptığımı düşünmeyin, ama neden yeni bir kütüphane oluşturmak yerine alt çizgiye katkıda bulunmuyorsunuz?
Xananax

133
@Xananax - yorum başlığını kontrol edin: github.com/jashkenas/underscore/commit/… - bu soruya cevap verebilir.
Rob Grant

41
Lodash'ı alt çizgiye dönüştürmek için herhangi bir çaba var mı?
sokak lambası

186

Lo-Dash, alt çizgiden esinlenmiştir, ancak günümüzde üstün bir çözümdür. Eğer yapabilirsiniz özel kurar bir var, daha yüksek performans , AMD desteklemek ve sahip harika ek özellikleri . Bu kontrol Underscore kriterler vs Lo-Dash .. Bu jsperf ve lo-dash hakkında müthiş yazı :

Koleksiyonlarla çalışırken en kullanışlı özelliklerden biri steno sözdizimidir:

var characters = [
  { 'name': 'barney', 'age': 36, 'blocked': false },
  { 'name': 'fred',   'age': 40, 'blocked': true }
];

// using "_.filter" callback shorthand
_.filter(characters, { 'age': 36 });

// using underscore
_.filter(characters, function(character) { return character.age === 36; } );

// → [{ 'name': 'barney', 'age': 36, 'blocked': false }]

( lodash dokümanlarından alınmıştır )


1
Kit Cambridge'in bloguna bağlantı çok bilgilendiricidir.
Brian M. Hunt

Bunun yanlış olduğunu düşünüyorum (pluck örneği). Son güncelleme 1.8.3 itibariyle, pluck'i lodash ile aynı şekilde kullanabilirsiniz. neyse önceki sürümler için alt çizgi aynı harita bir işlevi ortaya çıkaracağını sanmıyorum (alt çizgi örneği bir harita işlevi gibi görünüyor)
alexserver


Lo-Dash vs Underscore benchmark linkinde 500 hatası alıyorum
Hylle

86

Benim gibi, alt çizgi ile lodash arasındaki kullanım farklılıklarının bir listesini bekliyorduysanız, alt çizgiden lodash'a geçiş için bir rehber var .

İşte gelecek kuşak için şu anki durumu:

  • Alt _.anyçizgi Lodash_.some
  • Alt _.allçizgi Lodash_.every
  • Alt _.composeçizgi Lodash_.flowRight
  • Alt _.containsçizgi Lodash_.includes
  • Alt çizgi _.each, döndürerek çıkmaya izin vermezfalse
  • Alt _.findWhereçizgi Lodash_.find
  • Alt _.flattençizgi varsayılan olarak derindir, Lodash sığdır
  • Underscore _.groupByparametreleri geçirilen bir iteratee destekler (value, index, originalArray)Lodash içinde, için iteratee iken, _.groupBysadece tek bir parametre geçirilir: (value).
  • Çizgi _.indexOf3 parametresi ile undefinedLodash olduğunu_.indexOf
  • Çizgi _.indexOf3 parametresi ile trueLodash olduğunu_.sortedIndexOf
  • Alt _.indexByçizgi Lodash_.keyBy
  • Alt _.invokeçizgi Lodash_.invokeMap
  • Alt _.mapObjectçizgi Lodash_.mapValues
  • Alt çizgi _.max, Lodash _.max&_.maxBy
  • Alt çizgi _.min, Lodash _.min&_.minBy
  • Alt çizgi _.sample, Lodash _.sample&_.sampleSize
  • Alt çizgi _.object, Lodash _.fromPairsve_.zipObject
  • Alt çizgi _.omitbir yüklem tarafından Lodash olduğunu_.omitBy
  • Alt _.pairsçizgi Lodash_.toPairs
  • Alt çizgi _.pickbir yüklem tarafından Lodash olduğunu_.pickBy
  • Alt _.pluckçizgi Lodash_.map
  • Alt çizgi _.sortedIndex, Lodash _.sortedIndex&_.sortedIndexOf
  • Alt çizgi _.uniqbir göre iterateeLodash olduğu_.uniqBy
  • Alt _.whereçizgi Lodash_.filter
  • Alt çizgi _.isFiniteile hizalanmaz Number.isFinite
    (örneğin , Alt Çizgi'de ancak Lodash'ta _.isFinite('1')döndürür )truefalse
  • Alt çizgi _.matcheskestirme derin karşılaştırmaları desteklemez
    (ör. _.filter(objects, { 'a': { 'b': 'c' } }))
  • Alt çizgi ≥ 1.7 ve Lodash _.templatesözdizimi
    _.template(string, option)(data)
  • Lodash _.memoizeönbellekleri Mapnesneler gibidir
  • Lodash, contextlehine pek çok yöntem için tartışmayı desteklemiyor_.bind
  • Lodash örtülü zincirleme , tembel zincirleme ve kısayol füzyonunu destekler
  • Lodash onun aşırı bölünmüş _.head, _.last, _.rest, ve _.initialiçine
    _.take, _.takeRight, _.drop, ve _.dropRight
    (örneğin, _.head(array, 2)alt çizgi olarak _.take(array, 2)Lodash olarak)

1
Bu sorunları kendim geçerken yaşadım ve biri ile diğeri arasında bir (WIP) çapraz belge sürdürüyorum . Umarım diğer insanlara da yardımcı olur!
luxon

60

John'un cevabına ek olarak ve (şimdiye kadar alt çizgiye "ben-çok" olarak baktığım) lodash üzerine okuma ve performans testlerini görme, kaynak kodunu okuma ve blog yayınlarını , lodash yapan birkaç noktaya ek olarak alt çizgiden çok daha üstün olanlar:

  1. Hızla ilgili değil, tutarlılığıyla (?)

    Alt çizginin kaynak koduna bakarsanız, ilk birkaç satırda, birçok işlevin yerel uygulamalarında geriye kalanların altını çizdiğinizi görürsünüz. İdeal bir dünyada olmasına rağmen, bu slaytlarda verilen bazı mükemmel bağlantılara bakarsanız, bu daha iyi bir yaklaşım olurdu. bu 'yerel uygulamaların' kalitesinin çok farklı tarayıcılar olduğu sonucuna varmak zor değildir. için tarayıcı. Firefox bazı işlevlerde çok hızlıdır ve bazı Chrome'da hakimdir. (IE'nin de hakim olacağı bazı senaryolar olacağını hayal ediyorum). Performansı tarayıcılar arasında daha tutarlı olan bir kodu tercih etmenin daha iyi olduğuna inanıyorum .

    Blog gönderisini daha önce okuyun ve hatırına inanmak yerine, kriterleri çalıştırarak kendiniz karar verin . Şu anda hayrete düştüm, hatta basit , yerel işlevlerde alt çizgiden% 100-150 daha hızlı performans gösteren bir lodash görüyorumArray.every , Chrome !

  2. ekstralar lodash de oldukça faydalıdır.

  3. Alt çizgi koduyla Xananax son derece upvoted açıklama düşündüren katkısı gelince: O olması her zaman iyidir İYİ rekabete , sadece yeniliği devam ettirmekle kalmaz, aynı zamanda kendinizi (veya kütüphanenizi) iyi durumda tutmanızı sağlar.

İşte lodash arasındaki farkların bir listesi ve alt çizgi oluşturma alt çizgi projeleriniz için bir yedek yoldur.


6
Hangi durumda "hız tutarlılığı" bir değerdir? Diyelim ki, FF ve IE'de% 100 hıza sahip bir yöntemim var ve yerel bir uygulama IE'de% 80 ve FF'de (veya diğer yönde)% 120'lik bir hıza sahip olacak. Sonra FF yerel uygulama ve IE kendi uygulama kullanmak iyi olacağını söyleyebilirim. Ben söyleyebilirim hiçbir durumda hayal edemiyorum: Sadece IE'de olduğu gibi orada aynı hıza sahip nedeni için FF yavaşlayalım. Kodun boyutu ve sürdürülebilirliği veya tüm tarayıcılarda ortalama bir yavaşlama argümanlar olabilir, ancak hız tutarlılığı?
9'da stofl

2
Demek istediğim, "sürekli olarak daha hızlı hız"
kumarharsh

1
Boyut farkı ne olacak? Alt çizgi ile tam olarak aynı işlevselliğe sahip lodash ile özel bir yapı oluşturduğunuzu varsayalım? Aralarında büyük bir fark var mı? Yeniden uygulama siteye ağırlık ekler sanırım.
F Lekschas

5
Çoğu durumda kabul edilebilir bir performansa sahip olduğu ve kütüphaneyi güncel tutmak için endişelenmeden tarayıcı güncellemeleriyle iyileştirilebildiği için tarayıcının yerel uygulamasına geri dönmeye meyilliyim.
orad

3
@KumarHarsh Belki iyi ifade etmedim. Her zaman kendi uygulamasını tercih etmek yerine, yerel işlevler varsa dahili olarak kullanan bir kütüphane kullanmaya meyilliyim demek istedim.
orad

42

Bu 2014 ve birkaç yıl çok geç. Hala benim açımdan:

IMHO bu tartışma orantısız bir şekilde patladı. Yukarıda belirtilen blog yayınından alıntı :

Underscore, Valentine ve wu gibi JavaScript yardımcı program kitaplıklarının çoğu “yerli ilk ikili yaklaşıma” dayanır. Bu yaklaşım, yalnızca yerel eşdeğeri desteklenmiyorsa vanilya JavaScript'e geri dönen yerel uygulamaları tercih eder. Ancak jsPerf ilginç bir eğilim ortaya koydu: bir dizi veya dizi benzeri koleksiyon üzerinde yineleme yapmanın en etkili yolu, yerel uygulamaları tamamen önlemek ve bunun yerine basit döngüler seçmektir.

"Basit döngüler" ve "vanilya Javascript", Array veya Object yöntemi uygulamalarından daha doğal. Tanrım ...

Tek bir hakikat kaynağına sahip olmak kesinlikle iyi olurdu, ama yok. Size başka türlü söylenmiş olsa bile, Vanilya Tanrısı yoktur canım. Üzgünüm. Gerçekten geçerli olan tek varsayım, hepimizin tüm önemli tarayıcılarda iyi performans göstermeyi amaçlayan, hepsinin aynı şeylerin farklı uygulamaları olduğunu bilerek Javascript kodu yazmamızdır. Başa çıkmak, hafifçe koymak için bir orospu. Ama ister beğen ister beğenmesin öncül bu.

Belki hepiniz twitterish performansı gerektiren büyük ölçekli projeler üzerinde çalışıyorsunuz, böylece saniyede bir liste üzerinden 850.000 (alt çizgi) ve 2.500.000 (lodash) yineleme arasındaki farkı gerçekten görüyorsunuz. şu anda !

Ben değilim. Demek istediğim, performans sorunlarını ele almak zorunda kaldığım projeler üzerinde çalıştım, ancak hiçbir zaman Undercore veya Lo-Dash tarafından çözülmediler ya da neden olmadılar. Ve uygulama ve performans (şu anda C ++ konuşuyoruz) gerçek farklılıklar elde edemez sürece bir yinelenebilir (nesne veya dizi, seyrek ya da değil!) Bir döngü diyelim, ben daha fazla rahatsız etmeyin zaten tartışılan bir kıyaslama platformunun sonuçlarına dayalı talepler .

Rhino'nun Array yöntemi uygulamalarını ateşe tek bir "ortaçağ döngü yönteminin daha iyi ve sonsuza dek ve daha iyi performans göstermeyeceği ve neyin" yapamayacağı bir şekilde tümüyle FF'deki ani dizi yöntemleri, düşünülen beyin sikişinden çok daha hızlıdır. Dostum, çalışma ortamınızı aldatarak çalışma ortamınızı aldatamazsınız! Bunu tanıtırken düşünün ...

senin yardımcı kemerin

... bir dahaki sefer.

Bu yüzden alakalı tutmak için:

  • Yerel ish'den ödün vermeden kolaylık sağlıyorsanız Alt Çizgi'yi kullanın.
  • Kolaylık içindeyseniz ve genişletilmiş özellik kataloğunu (derin kopya vb.) Seviyorsanız ve anlık performansa umutsuz ihtiyacınız varsa ve en önemlisi yerel API'nin gündemi en kısa sürede bir alternatife yerleşmeyi düşünmüyorsanız Lo-Dash'i kullanın görüşlü geçici çözümler. Bu da yakında olacak. Dönemi.
  • Üçüncü bir çözüm bile var. DIY! Ortamlarınızı tanıyın. Tutarsızlıkları öğrenin. Onların (Oku John-David 'in ve Jeremy ' ler) kodu. Bir tutarlılık / uyumluluk katmanının neden gerçekten gerekli olduğunu ve iş akışınızı geliştirdiğini veya uygulamanızın performansını artırdığını açıklayamadan bunu veya bunu kullanmayın. Gereksinimlerinizin, kendinizi mükemmel bir şekilde yazabileceğiniz basit bir çoklu dolgudan memnun olması büyük olasılıktır. Her iki kütüphane de biraz şekerli sade vanilya. İkisi de sadece en tatlı pastayı kimin servis ettiği konusunda kavga ediyor . Ama inan bana, sonunda her ikisi de sadece su ile pişiyor. Vanilya Tanrısı yok, bu yüzden Vanilya papası olamaz, değil mi?

İhtiyaçlarınıza en uygun yaklaşımı seçin. Her zaman oldugu gibi. Ben her zaman görüşlü çalışma zamanı hileleri yerine gerçek uygulamalarda yedek tercih ederim ama bu bile bugünlerde bir zevk meselesi gibi görünüyor. Http://developer.mozilla.com ve http://caniuse.com gibi kaliteli kaynaklara bağlı kalmanız yeterli olacaktır.


Lukas'ı gönderdiğiniz için teşekkür ederiz. Yerleşikler daha da optimize edilebilir mi? Kütüphanelerle karşılaştırılabilir optimizasyonlara sahip olmalarını engelleyen standartların getirdiği kısıtlamalara sahip olduklarını topladım, ancak ayrıntıları hazırlıksız olarak veya bunun doğru olup olmadığını bilmiyorum.
Brian M. Hunt

Örneğin, "% 99 kullanım durumu için optimize ederek fast.js yöntemleri yerel eşdeğerlerinden 5 kata kadar daha hızlı olabilir." - github.com/codemix/fast.js
Brian M. Hunt

1
Merhaba Brian, bu yanıltıcıysa özür dilerim, bu kütüphanelerin yerel eşdeğerlerinden çok daha hızlı olmadığını söylemek istemedim. Şu anda umutsuz bir performansa ihtiyacınız varsa, muhtemelen standart yöntemlerin daha hızlı uygulanmasını sağladığı için LoDash veya fast.js gibi bir araç setiyle daha iyi durumdasınız. Ancak, yerel yöntemlere geri dönmeyen bir kütüphane kullanmayı seçerseniz, yerleşik yapılarda gelecekteki performans optimizasyonlarını kaçırabilirsiniz. Tarayıcılar eninde sonunda gelişecektir.
Lukas Bünger

4
Tarayıcı "üreticileri", tarayıcı standartlarını uyumlu tutmakta zorlanırlar. Yerel uygulamalardaki performans kazançlarının çoğu daha hızlı donanımın bir sonucudur. "Yerel uygulamalar yetişecek" mazereti yıllardır sürüyor. Yıl = İnternette sonsuzluk. EĞER yerli uygulamalar şimdiye yakalamak, kütüphaneler bunları kullanmak için güncellenecektir. Bu açık kaynak hakkında harika bir şey. Bir uygulama geliştiricisi en son kitaplığa güncellenmezse, uygulamaları aniden yavaşlamaz, sadece hızlanmaz.
Andrew Steitz

2
... ama onlara Array.fromsorarsanız, muhtemelen ne yapması gerektiğini bilmeyeceklerdi. JS "faydalı kemer" insanlar oh-so-genial geçici çözümlerini teşvik etmekle o kadar aşırı endişe duyuyorlar ki, bunu yaparak, aslında standartlaştırma sürecini seyreltiyorlar. Özelliklere gerek yok tarayıcı "üreticileri" üzerinde hiçbir baskı yol açar. İlginç gerçek: 4 ana tarayıcıdan 2'si açık kaynaklı projelere dayanmaktadır ( 1 , 2 ).
Lukas Bünger

20

Burada söylenenlerin çoğuna katılıyorum ama sadece underscore.js lehine bir argümana işaret etmek istiyorum: kütüphanenin büyüklüğü.

Özellikle, çoğunlukla mobil cihazlarda kullanılmayı amaçlayan bir uygulama veya web sitesi geliştiriyorsanız, ortaya çıkan paketin boyutu ve önyükleme veya indirme süresi üzerindeki etkinin önemli bir rolü olabilir.

Karşılaştırma için, bu boyutlar iyonik servis çalıştırdıktan sonra kaynak-harita-kaşif ile fark ettiğim boyutlardır:

lodash: 523kB
underscore.js: 51.6kb

düzenlendi Şubat 2020 :

mevcut Lo-Dash ve Alt çizgi boyutunu kontrol etmek için BundlePhobia kullanılabilir


1
Teşekkürler Peter, burada dikkat çekilmesi gereken önemli bir nokta. Başka yerlerde, gist.github.com/alekseykulikov/5f4a6ca69e7b4ebed726 dahil olmak üzere daha fazla tartışma var . (Bu cevap, diğer tartışmaların bazılarının birbirine bağlanması ve ilgili bitlerin alıntılanmasıyla iyileştirilebilir.) Boyut farkı, lodash alt bölümleri ve ağaç sallayan lodash seçilerek azaltılabilir. 🕷
Brian M. Hunt

Thx @ BrianM. Cevabınız için, lodash alt bölümlerini dahil etmenin mümkün olduğunu bilmiyordum, bir göz atacaksınız. Son zamanlarda iyonik-yerli ile, İyonik yerli kütüphaneleri için de böyle bir yol izledi, uygulama boyutu hakkında daha fazla endişe duyduğuna dikkat edin
David Dal Busco

1
Acaba 523kB'yi nereden aldın? lodash.com sadece 24kB sıkıştırılmış olduğunu söylüyor. indirilen sadece 74kB
Martian2049

1
yazım Nisan 2017'de yapıldı. Yorumumda söylediğim gibi,source-map-explorer after running ionic serve
David Dal Busco

5
Mart 2018 yılında - lodash.min.js 72,5 kB ve alt çizgi-min.js 16,4 kB olduğunu
birleştirin

10

OP'nin bu anlama gelip gelmediğinden emin değilim, ancak bu soruya geldim çünkü alt çizgiden lodash'a geçerken akılda tutmam gereken sorunların bir listesini arıyordum.

Birisi bu tür farklılıkların tam bir listesini içeren bir makale yayınladıysa gerçekten takdir ediyorum. Zor yoldan öğrendiğim şeylerle başlayayım (yani, kodumu üretimde patlatan şeyler: /):

  • _.flattenalt çizgi varsayılan olarak derin ve sığ yapmak için ikinci argüman olarak true geçmek zorunda. Lodash'ta varsayılan olarak sığdır ve ikinci argümanın derinleşmesi onu derinleştirecektir! :)
  • _.lastalt çizgi, kaç öğe istediğinizi belirten ikinci bir argümanı kabul eder. İçinde lodashböyle bir seçenek yok. Bunu taklit edebilirsiniz.slice
  • _.first (aynı sorun)
  • _.templatealt çizgi birçok şekilde kullanılabilir, bunlardan biri şablon dizgisini ve verilerini sağlar ve HTMLgeri döner (veya en azından bir süre önce bu şekilde çalıştı). Daha lodashsonra verilerle beslemeniz gereken bir işlev alırsınız.
  • _(something).map(foo)alt çizgi üzerinde çalışır, ancak lodash'da yeniden yazmak zorunda kaldım _.map(something,foo). Belki bu sadece bir oldu TypeScript-issue

4
Lodash'da zincirleme tembel bir yineleyiciyi geçer ve benzeri ve son nokta gerektirir _(something).map(foo).value().
Brian M. Hunt

Bu kütüphanelere vekaleten çağrı yapan Omurga Koleksiyonu'nu kullanırsanız, tüm bunlar size çarpabilir - örneğin collection.first (5) size ilk 5 öğeyi değil, ilkini verir :)
qbolec

8

http://benmccormick.org/2014/11/12/underscore-vs-lodash/

Ben McCormick'in ikisini karşılaştıran son makale:

  1. Lo-Dash API'sı, Underscore'ların bir üst kümesidir.

  2. Başlık altında [Lo-Dash] tamamen yeniden yazılmıştır.

  3. Lo-Dash kesinlikle Underscore'dan daha yavaş değil.

  4. Lo-Dash ne ekledi?

    • Kullanılabilirlik Geliştirmeleri
    • Ekstra İşlevsellik
    • Performans Kazançları
    • Zincirleme için steno sözdizimleri
    • Yalnızca ihtiyacınız olanı kullanmak için Özel Yapılar
    • Anlamsal sürüm oluşturma ve% 100 kod kapsamı

6

Benim için önemli olan bir fark buldum. Lodash en olmayan çizgi uyumlu versiyon _.extend()does not sınıf düzeyinde tanımlı özelliklerine veya yöntemlerine üzerinde kopyalayın.

CoffeeScript'te bunu gösteren bir Yasemin testi oluşturdum:

https://gist.github.com/softcraft-development/1c3964402b099893bd61

Neyse ki, lodash.underscore.jsUndercore'un her şeyi kopyalama davranışını koruyor, bu benim durumum için istenen davranıştı.


4

Lodash alt puan_.mapValues() ile aynı olan var _.mapObject().


0

Çoğunlukla alt çizgi lodash'ın alt kümesidir. Bazen, şu anda alt çizgi gibi serin küçük fonksiyonları olacak lodash mapObject gibi sahip değildir. Bu, projemin geliştirilmesinde bana çok zaman kazandırdı.


zamanda, _.mapValues
crapthings

@crapthings - bu yazı sırasında mayValues ​​ve mapKeys'i biliyordum ama mapObject ile aynı değiller. Belki birini diğerine uygulamak için durumlar vardır ama mapObject kendi başına bir işlevdir.
rashadb

0

Lodash ile oldukça benzerler devralıyor ...

Her ikisi de JavaScript dünyasında yararlanır bir yardımcı kütüphane vardır ...

Lodash gibi görünüyor şimdi daha düzenli olarak güncelleniyor , bu yüzden en son projelerde daha çok kullanılıyor ...

Ayrıca Lodash birkaç KB tarafından daha hafif görünüyor ...

Her ikisinin de iyi bir api ve doktoru var, ama bence Lodash daha iyi ...

İşte bir dizinin ilk değerini almak için dokümanların her biri için ekran görüntüsü ...

vurgulamak:

vurgulamak

lodash: lodash

İşler zaman zaman güncellenebileceğinden, web sitelerini de kontrol edin ...

lodash

vurgulamak

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.