ලොඩාෂ් සහ අවධාරනය අතර වෙනස්කම් [වසා ඇත]


1611

යමෙක් අනෙකට වඩා lodash.js හෝ underscore.js උපයෝගිතා පුස්තකාලයට කැමති ඇයි ?

ලොඩාෂ් අවධාරනය සඳහා ආදේශකයක් ලෙස පෙනේ, දෙවැන්න වැඩි කාලයක් පැවතුනි.

මම හිතන්නේ දෙදෙනාම දක්ෂයි, නමුත් උගත් සංසන්දනයක් කිරීමට ඔවුන් ක්‍රියා කරන්නේ කෙසේද යන්න ගැන මම ප්‍රමාණවත් දැනුමක් නැති අතර වෙනස්කම් ගැන වැඩි විස්තර දැන ගැනීමට කැමතියි.


2
එහි ගිතුබ් පිටුවට සම්බන්ධ කර ඇති ලොඩාෂ් පිළිබඳ තිර- විකාශන කිහිපයක් බැලීමට ඔබට අවශ්‍ය විය හැකිය . පුද්ගලිකව මම undererscore.js භාවිතා කර ඇත, නමුත් ඊට වඩා වැඩි වන්නේ මා එය ආරම්භ කළ නිසාත්, ඔබ පවසන පරිදි එය දිගු කාලයක් ගත වී ඇති නිසාත් ය.
ජැක්

26
lodashහා underscoreයටතේ ඒකාබද්ධ නූල් දැන්
zangw

Answers:


2030

අරා, නූල්, වස්තූන් සහ argumentsවස්තු 1 සඳහා වඩාත් ස්ථාවර හරස්-පරිසර පුනරාවර්තන සහය ලබා දීම සඳහා මම ලෝ-ඩෑෂ් නිර්මාණය කළෙමි . එතැන් පටන් එය අන්ඩර්ස්කෝර් හි සුපර්සෙට් එකක් බවට පත්ව ඇති අතර, වඩාත් ස්ථාවර API හැසිරීම්, වැඩි විශේෂාංග (AMD සහාය, ගැඹුරු ක්ලෝන සහ ගැඹුරු ඒකාබද්ධ කිරීම වැනි), වඩාත් සවිස්තරාත්මක ලියකියවිලි සහ ඒකක පරීක්ෂණ (නෝඩ්, රින්ගෝ, රයිනෝ, නර්වාල්, ෆැන්ටම් ජේඑස් හි ක්‍රියාත්මක වන පරීක්ෂණ , සහ බ්‍රව්සර්), විශාල අරා / වස්තු පුනරාවර්තනය සඳහා වඩා හොඳ සමස්ත කාර්ය සාධනය සහ ප්‍රශස්තිකරණය, සහ අභිරුචි ගොඩනැගීම් සහ අච්චු පූර්ව සම්පාදන උපයෝගීතා සමඟ වඩාත් නම්‍යශීලී වීම .

Lo-Dash අන්ඩර්ස්කෝර් වලට වඩා නිතර යාවත්කාලීන වන හෙයින්, අන්ඩර්ස්කෝර් හි නවතම ස්ථාවර අනුවාදය සමඟ අනුකූලතාවය සහතික කිරීම සඳහා lodash underscoreගොඩනැගීමක් සපයනු ලැබේ .

එක් අවස්ථාවකදී මට අන්ඩර්ස්කෝර් වෙත තල්ලු කිරීමේ ප්‍රවේශය පවා ලැබුණි , එයට හේතුව ගැටළු 30 කට වඩා වැඩි ගණනක් මතු කිරීමට ලො-ඩෑෂ් වගකිව යුතු බැවිනි; Underscore v1.4.x + හි ගොඩබෑමේ දෝෂ නිවැරදි කිරීම්, නව විශේෂාංග සහ පරිපූර්ණ වාසි.

මීට අමතරව අවම වශයෙන් පසුගාමී බොයිලේරු 3 ක් වත් පෙරනිමියෙන් Lo-Dash ඇතුළත් වන අතර Lo-Dash දැන් Backbone හි නිල ලේඛනයේ සඳහන් වේ.

ලො-ඩෑෂ් සහ අන්ඩර්ස්කෝර් අතර ඇති වෙනස්කම් පිළිබඳ ගැඹුරු බිඳවැටීමක් සඳහා කිට් කේම්බ්‍රිජ් හි පෝස්ට් එක බලන්න, ලො-ඩෑෂ් වෙත "හෙලෝ" කියන්න .

පාද සටහන්:

  1. අන්ඩර්ස්කෝර්ට අරා, නූල්, වස්තු සහ argumentsවස්තු සඳහා නොගැලපෙන සහය ඇත. අළුත් බ්‍රව්සර් වලදී, අන්ඩර්ස්කෝර් ක්‍රම මඟින් අරා වල සිදුරු නොසලකා හරිනු ලැබේ , “වස්තූන්” ක්‍රම මඟින් argumentsවස්තූන් පුනරාවර්තනය වේ, නූල් අරාව-සමාන ලෙස සලකනු ලැබේ, සහ ක්‍රම නිවැරදිව ක්‍රියාකාරීත්වය (ඒවායේ “මූලාකෘති” දේපල නොසලකා හැරීම) සහ වස්තූන් (“toString” වැනි සෙවනැලි ගුණාංග නැවත සැකසීම සහ "valueOf"), පැරණි බ්‍රව්සර් වල ඒවා සිදු නොවේ. _.cloneඅරා වල සිදුරු ආරක්ෂා කිරීම වැනි යටි ඉරි ලකුණු ක්‍රම වන අතර අනෙක් _.flattenඒවා එසේ නොවේ.

175
Rian බ්‍රයන් - ලො-ඩෑෂ් සංවර්ධනය කරන අතරතුර මම දිගින් දිගටම ඇසුවේ "අන්ඩර්ස්කෝර් හා සසඳන විට ලො-ඩෑෂ් හි යමෙකුට negative ණාත්මක ලෙස පෙන්වා දිය හැක්කේ කුමක් ද?" ඉන්පසු ඔවුන් අමතන්න. මේ නිසා තමයි මම ලියකියවිලි සකස් කර, අභිරුචි ගොඩනැඟිලි එකතු කර, මූලාශ්‍රය කියවිය හැකි ලෙස සකසා ඇත.
ජෝන්-ඩේවිඩ් ඩෝල්ටන්

10
මිණුම් සලකුණු කිහිපයක් පළ කිරීමට මම ඉතා පෙළඹී සිටිමි, නමුත් එය වෙහෙසකර විය හැකිය. මම ධාවනය කර ඇති සෑම මිණුම් ලකුණක්ම අවධාරනය කිරීමට වඩා ලො-ඩෑෂ් වේගවත් බව ( බොහෝ අවස්ථාවන්හිදී වඩා වේගවත්) ඔප්පු කර ඇති බව පැවසීම ප්‍රමාණවත්ය .
විල් මුවර් III

187
මම ලො-ඩෑෂ් වලට ආදරය කරන අතර මම එය භාවිතා කරමි, එබැවින් කරුණාකර මම පහර දෙන බව නොසිතන්න, නමුත් නව පුස්තකාලයක් නිර්මාණය කරනවා වෙනුවට අවධාරනය කිරීමට දායක නොවන්නේ ඇයි?
සනානාක්ස්

134
An සානාක්ස් - අදහස් නූල් පරීක්ෂා කරන්න: github.com/jashkenas/underscore/commit/… - මෙය එම ප්‍රශ්නයට පිළිතුරු සපයයි.
රොබ් ග්‍රාන්ට්

41
ලොඩාෂ් යලි අවධාරනය කිරීමට කිසියම් උත්සාහයක් ගෙන තිබේද?
වීදි ආලෝකය

187

Lo-Dash අවධාරනය කර ඇත්තේ අවධාරනය කිරීමෙනි, නමුත් වර්තමානයේ එය විශිෂ්ට විසඳුමකි. ඔබට ඔබේ අභිරුචි ගොඩනැගීම , ඉහළ කාර්ය සාධනයක් , AMD සඳහා සහය දැක්වීම සහ අමතර අමතර විශේෂාංග තිබිය හැකිය. Jsperf හි මෙම Lo-Dash vs Underscore මිණුම් සලකුණු පරීක්ෂා කරන්න සහ .. lo-dash පිළිබඳ මෙම පුදුමාකාර සටහන :

ඔබ එකතු කිරීම් සමඟ වැඩ කරන විට වඩාත්ම ප්‍රයෝජනවත් අංගයක් වන්නේ කෙටිමං වාක්‍ය ඛණ්ඩයයි:

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 }]

( ලොඩාෂ් ලියකියවිලි වලින් ගන්නා ලදි )


1
කිට් කේම්බ්‍රිජ්ගේ බ්ලොග් අඩවියට සබැඳිය ඉතා තොරතුරු සහිතය.
බ්‍රයන් එම්. හන්ට්

මම හිතන්නේ මෙය වැරදියි (පැහැර ගැනීමේ උදාහරණය). අවසාන යාවත්කාලීනය 1.8.3 වන විට, ඔබට ලොඩාෂ් මෙන් ප්ලක් භාවිතා කළ හැකිය. කෙසේ වෙතත් පෙර සංස්කරණ සඳහා අවධාරනය කරන්නේ සිතියමකට සමාන ශ්‍රිතයක් අවධාරනය කරයි (ඔබේ යටි ඉරි උදාහරණය සිතියම් ශ්‍රිතයක් සේ පෙනේ)
ඇලෙක්සර්වර්

7
filter2012 සිට අවධාරනය කරන්න. github.com/jashkenas/underscore/issues/648 (එහි නම where)
මුහම්මද් හෙවිඩි

Lo-Dash vs Underscore මිණුම්
ලකුණෙහි

89

මා වැනි ඔබ අවධාරනය කළේ යටි ඉරි සහ ලොඩෑෂ් අතර භාවිත වෙනස්කම් ලැයිස්තුවක් නම්, යටි ඉරි සිට ලොඩාෂ් වෙත සංක්‍රමණය වීමට මාර්ගෝපදේශයක් තිබේ.

පසු පරම්පරාව සඳහා එහි වර්තමාන තත්වය මෙන්න:

  • Underscore _.anyLodash වේ_.some
  • Underscore _.allLodash වේ_.every
  • Underscore _.composeLodash වේ_.flowRight
  • Underscore _.containsLodash වේ_.includes
  • Underscore _.eachනැවත විසින් පිටවීමට ඉඩ දෙන්නේ නැහැfalse
  • Underscore _.findWhereLodash වේ_.find
  • Underscore _.flattenLodash නොගැඹුරු වන අතර පෙරනිමියෙන් ගැඹුරු
  • Underscore _.groupByපරාමිතීන් සම්මත බව iteratee සහාය (value, index, originalArray)Lodash දී, සඳහා iteratee අතර, _.groupByඑකම එක පරාමිතිය සම්මත: (value).
  • _.indexOf3 වන පරාමිතිය සමඟ undefinedයටි ඉරි ලකුණු වන්නේ ලොඩාෂ් ය_.indexOf
  • _.indexOf3 වන පරාමිතිය සමඟ trueයටි ඉරි ලකුණු වන්නේ ලොඩාෂ් ය_.sortedIndexOf
  • Underscore _.indexByLodash වේ_.keyBy
  • Underscore _.invokeLodash වේ_.invokeMap
  • Underscore _.mapObjectLodash වේ_.mapValues
  • Underscore _.maxLodash ඒකාබද්ධ _.maxසහ_.maxBy
  • Underscore _.minLodash ඒකාබද්ධ _.minසහ_.minBy
  • Underscore _.sampleLodash ඒකාබද්ධ _.sampleසහ_.sampleSize
  • Underscore _.objectLodash ඒකාබද්ධ _.fromPairsහා_.zipObject
  • Underscore _.omitවූ සංජානන විසින් Lodash වේ_.omitBy
  • Underscore _.pairsLodash වේ_.toPairs
  • Underscore _.pickවූ සංජානන විසින් Lodash වේ_.pickBy
  • Underscore _.pluckLodash වේ_.map
  • Underscore _.sortedIndexLodash ඒකාබද්ධ _.sortedIndexසහ_.sortedIndexOf
  • Underscore _.uniqමගින් iterateeවන Lodash_.uniqBy
  • Underscore _.whereLodash වේ_.filter
  • Underscore _.isFiniteසමග සන්ධානගත නැත Number.isFinite
    (උදා: _.isFinite('1')ප්රතිලාභ trueunderscore නොව falseLodash දී)
  • යටි ඉරි _.matchesලකුණු කිරීම ගැඹුරු සැසඳීම් සඳහා සහය නොදක්වයි
    (උදා _.filter(objects, { 'a': { 'b': 'c' } }))
  • යටි ඉරි 7 1.7 සහ ලොඩාෂ් _.templateසින්ටැක්ස් වේ
    _.template(string, option)(data)
  • ලොඩාෂ් _.memoizeහැඹිලි Mapවස්තු හා සමානයි
  • ලොඩාෂ් contextපක්ෂව බොහෝ ක්‍රම සඳහා තර්කයකට සහාය නොදක්වයි_.bind
  • ලොඩාෂ් ව්‍යංග දම්වැල , කම්මැලි දම්වැල සහ කෙටිමං විලයනය සඳහා සහය දක්වයි
  • Lodash එහි වුවමනාවන් බෙදී _.head, _.last, _.rest, සහ _.initialපිටතට
    _.take, _.takeRight, _.drop, _.dropRight
    (එනම් _.head(array, 2)Underscore වේ _.take(array, 2)Lodash දී)

1
සංක්‍රමණය වන විට මා විසින්ම මෙම ගැටළු වලට මුහුණ දී ඇති අතර මම (WIP) හරස් ලියකියවිලි එකක් සහ අනෙක අතරට ගෙන යමි. එය අනෙක් අයටද ප්‍රයෝජනවත් වේ යැයි සිතමු!
luxon

60

ජෝන් ගේ පිළිතුරට අමතරව, ලොඩාෂ් පිළිබඳ කියවීම (මම මෙතෙක් අවධාරනය කර ඇත්තේ "මමත්" ලෙස අවධාරනය කර ඇති), සහ කාර්ය සාධන පරීක්ෂණ දැකීම, මූලාශ්‍ර කේතය සහ බ්ලොග් සටහන් කියවීම, ලොඩාෂ් කරන කරුණු කිහිපයක් අවධාරනය කිරීමට වඩා උසස් ඒවා නම්:

  1. එය වේගය ගැන නොවේ, එය වේගයේ අනුකූලතාව (?) ගැන ය

    ඔබ අවධාරනය කරන්නේ මූලාශ්‍ර කේතය නම්, බොහෝ කාර්යයන් ස්වදේශීයව ක්‍රියාත්මක කිරීම මත වැටෙන බව අවධාරනය කරන පළමු පේළි කිහිපය තුළ ඔබට පෙනෙනු ඇත. පරමාදර්ශී ලෝකයක වුවද, මෙය වඩා හොඳ ප්‍රවේශයක් වනු ඇත, මෙම විනිවිදකවල දක්වා ඇති සමහර පරිපූර්ණ සබැඳි දෙස බැලුවහොත් , එම 'ස්වදේශීය ක්‍රියාත්මක කිරීම්වල' ගුණාත්මක භාවය බොහෝ බ්‍රව්සරයෙන් වෙනස් වන බවට නිගමනය කිරීම දුෂ්කර නොවේ. බ්‍රව්සරයට. සමහර කාර්යයන් වලදී ෆයර්ෆොක්ස් ඉතා වේගවත් වන අතර සමහර ක්‍රෝම් වල ආධිපත්‍යය දරයි. (IE ද ආධිපත්‍යය දරන අවස්ථා කිහිපයක් ඇතැයි මම සිතමි). බ්‍රව්සර් හරහා වඩාත් ක්‍රියාකාරී වන කේතයකට වැඩි කැමැත්තක් දැක්වීම වඩා හොඳ යැයි මම විශ්වාස කරමි .

    බ්ලොග් සටහන කලින් කියවා බලන්න, එය ඒ වෙනුවෙන් විශ්වාස කරනවා වෙනුවට, මිණුම් සලකුණු ක්‍රියාත්මක කිරීමෙන් ඔබම විනිශ්චය කරන්න . ක්‍රෝම් වැනි සරල , ස්වදේශීය ක්‍රියාකාරකම් වලදී අවධාරනය කිරීමට වඩා 100-150% වේගයෙන් ක්‍රියාත්මක වන ලොඩාෂ් එකක් දැකීමෙන් මම දැන් මවිතයට පත් Array.everyවී සිටිමි!

  2. ලොඩාෂ් හි ඇති අමතර දේද බෙහෙවින් ප්‍රයෝජනවත් වේ.

  3. අවධාරනය කරන කේතයට දායකත්වය යෝජනා කරන සනානාක්ස්ගේ ඉහළ ප්‍රකාශය සම්බන්ධයෙන්: සෑම විටම හොඳ තරඟයක් පැවැත්වීම වඩා හොඳය , එය නවෝත්පාදනය දිගටම කරගෙන යනවා පමණක් නොව, ඔබ (හෝ ඔබේ පුස්තකාලය) හොඳ තත්වයේ තබා ගැනීමට ඔබව පොළඹවයි.

මෙන්න ලොඩාෂ් අතර ඇති වෙනස්කම් ලැයිස්තුවක් වන අතර, එය අවධාරනය කරන්නේ ඔබේ අවධාරනය කළ ව්‍යාපෘති සඳහා ප්‍රතිස්ථාපනයකි.


6
“වේගයේ අනුකූලතාව” අගය වන්නේ කුමන අවස්ථාවේදීද? මම කියමු, මට එෆ්එෆ් සහ අයිඊ හි 100% ක වේගයක් ඇති ක්‍රමවේදයක් ඇති අතර දේශීය ක්‍රියාත්මක කිරීමක දී IE හි 80% ක වේගයක් සහ 120% එෆ්එෆ් (හෝ වෙනත් ආකාරයකින්) වේ. එවිට මම කියනුයේ එෆ්එෆ් හි ස්වදේශීය ක්‍රියාත්මක කිරීම සහ අයිඊ හි ක්‍රියාත්මක කිරීම භාවිතා කිරීම හොඳ බවය. මට කිසියම් සිද්ධියක් සිතාගත නොහැකිය, එහිදී මම මෙසේ කියමි: අයිඊ හි මෙන් එකම වේගයක් තිබීමට හේතුව නිසා අපි එෆ්එෆ් වේගය අඩු කරමු. කේතයේ ප්‍රමාණය සහ නඩත්තු කිරීමේ හැකියාව හෝ සියලු බ්‍රව්සර්වල සාමාන්‍ය මන්දගාමී වීම තර්ක වනු ඇත, නමුත් වේගයේ අනුකූලතාව?
stofl

2
මම අදහස් කළේ, "නිරන්තරයෙන් වේගවත් වේගය"
කුමාර්හාර්ෂ්

1
ප්‍රමාණයේ වෙනස ගැන කුමක් කිව හැකිද? අවධාරනය කරන්නේ හරියටම සමාන ක්‍රියාකාරීත්වයක් ඇති ලොඩාෂ් සමඟ අභිරුචි ගොඩනැගීමක් ඔබ නිර්මාණය කරන බව කියමු? ඔවුන් අතර විශාල වෙනසක් තිබේද? නැවත අනුමාන කිරීම වෙබ් අඩවියට බරක් එක් කරන බව මම අනුමාන කරමි.
එෆ් ලෙක්චස්

5
බොහෝ අවස්ථාවන්හි එය පිළිගත හැකි කාර්ය සාධනයක් ඇති නිසාත්, පුස්තකාලය යාවත්කාලීනව තබා ගැනීමට කරදර නොවී බ්‍රව්සර් යාවත්කාලීනයන් සමඟ වැඩිදියුණු කළ හැකි නිසාත් මම බ්‍රව්සරයේ ස්වදේශීය ක්‍රියාත්මක කිරීමට පසුබට නොවෙමි.
orad

3
Um කුමාර්හාර්ෂ් සමහර විට මම එය හොඳින් වාක්‍ය ඛණ්ඩනය නොකළේය. මම අදහස් කළේ සෑම විටම ස්වකීය ක්‍රියාවට නැංවීමට කැමැත්තක් දක්වනවා වෙනුවට අභ්‍යන්තර කාර්යයන් දේශීයව භාවිතා කරන පුස්තකාලයක් භාවිතා කිරීමට මා නැඹුරු වන බවයි.
orad

42

මෙය 2014 වන අතර වසර කිහිපයක් ප්‍රමාදයි. තවමත් මම සිතන්නේ මගේ අදහස මෙයයි:

IMHO මෙම සාකච්ඡාව තරමක් දුරට සමානුපාතික විය. ඉහත සඳහන් බ්ලොග් සටහන උපුටා දැක්වීම :

අන්ඩර්ස්කෝර්, වැලන්ටයින් සහ වු වැනි බොහෝ ජාවාස්ක්‍රිප්ට් උපයෝගිතා පුස්තකාල රඳා පවතින්නේ “ස්වදේශීය පළමු ද්විත්ව ප්‍රවේශය” මත ය. මෙම ප්‍රවේශය ස්වදේශික ක්‍රියාත්මක කිරීම් වලට වැඩි කැමැත්තක් දක්වයි, වැනිලා ජාවාස්ක්‍රිප්ට් වෙත ආපසු යාම ස්වදේශීය සමානතාවයට සහය නොදක්වන්නේ නම් පමණි. නමුත් jsPerf සිත්ගන්නාසුලු ප්‍රවණතාවක් හෙළි කළේය: අරාව හෝ අරාව වැනි එකතුවක් හරහා නැවත යෙදීම සඳහා වඩාත් කාර්යක්ෂම ක්‍රමය වන්නේ ස්වදේශීය ක්‍රියාත්මක කිරීම් මුළුමනින්ම වළක්වා ගැනීමයි, ඒ වෙනුවට සරල ලූප තෝරා ගැනීමයි.

"සරල ලූප" සහ "වැනිලා ජාවාස්ක්‍රිප්ට්" අරාව හෝ වස්තු ක්‍රම ක්‍රියාත්මක කිරීමට වඩා ස්වදේශීය ය. ජීස් ...

සත්‍යයේ එක් ප්‍රභවයක් තිබීම ඇත්තෙන්ම සතුටක්, නමුත් එසේ නොවේ. ඔබට වෙනත් ආකාරයකින් පැවසුවද, වැනිලා දෙවියන් නැත, මගේ ආදරණීය. මට කණගාටුයි. සැබවින්ම ඇති එකම උපකල්පනය නම්, අප සියලු දෙනා එකම ප්‍රධාන බ්‍රව්සර්වල හොඳින් ක්‍රියා කිරීම අරමුණු කරගත් ජාවාස්ක්‍රිප්ට් කේතය ලිවීමයි, ඒ සියල්ලටම එකම දේවල විවිධ ක්‍රියාත්මක කිරීම් ඇති බව දැන සිටීම. එය මෘදු ලෙස තැබීමට, එය සමඟ කටයුතු කිරීමට බැල්ලියකි. නමුත් ඔබ කැමති වුවත් නැතත් එය එයයි.

සමහර විට ඔබ ට්විටර් කාර්ය සාධනය අවශ්‍ය මහා පරිමාණ ව්‍යාපෘතිවල වැඩ කරමින් සිටින අතර එමඟින් තත්පරයට ලැයිස්තුවකට වඩා 850,000 (අවධාරනය) එදිරිව 2,500,000 (ලොඩාෂ්) පුනරාවර්තන අතර වෙනස ඔබට සැබවින්ම පෙනෙනු ඇත !

මම එකකට නොවේ. මම අදහස් කළේ, මම කාර්ය සාධන ගැටළු විසඳිය යුතු ව්‍යාපෘතිවල වැඩ කළ නමුත් ඒවා කිසි විටෙකත් විසඳීමට හෝ අන්ඩර්ස්කෝර් හෝ ලො-ඩෑෂ් නිසා ඇතිවූවක් නොවේ. ක්‍රියාවට නැංවීමේ සහ ක්‍රියාකාරීත්වයේ සැබෑ වෙනස්කම් මා අල්ලා නොගත්තොත් (අපි දැන් C ++ කතා කරමු) නැවත ක්‍රියාත්මක කළ හැකි (වස්තුවක් හෝ අරාවක්, විරල හෝ නැත!) හරහා ලූපයක් පැවසීමට ඉඩ දෙන්න, මම ඒ ගැන කරදර වන්නේ නැත දැනටමත් අදහස් කර ඇති මිණුම් සලකුණු වේදිකාවක ප්‍රති results ල මත පදනම් වූ හිමිකම් .

එයට අවශ්‍ය වන්නේ එක් "යාවත්කාලීනයක් පමණි" රයිනෝට එහි අරේ ක්‍රමවේදය ක්‍රියාත්මක කිරීම ගිනි තැබීමට එක් "මධ්‍යකාලීන ලූප් ක්‍රමයක් වඩා හොඳ හා සදාකාලිකවම සිදු නොවන අතර කිසිවක් නැත" යන පූජකවරයාට ඔහුගේ / ඇයගේ මාර්ගය තර්ක කළ හැකිය. එෆ්එෆ් හි හදිසි අරාව ක්‍රම ඔහුගේ / ඇයගේ මතය අනුව මොළයට වඩා වේගවත් ය. මචං, ඔබේ ධාවන කාල පරිසරය වංචා කිරීමෙන් ඔබට ඔබේ ධාවන කාල පරිසරය වංචා කළ නොහැක! ප්‍රවර්ධනය කිරීමේදී ඒ ගැන සිතන්න ...

ඔබේ උපයෝගිතා පටිය

... ඊළඟ සැරේ.

එබැවින් එය අදාළ කර ගැනීමට:

  • ස්වදේශික ඊෂ් පූජා නොකර පහසුව සඳහා ඔබ අන්ඩර්ස්කෝර් භාවිතා කරන්න.
  • ඔබ පහසුවක් නම් සහ එහි විස්තාරණ විශේෂාංග නාමාවලිය (ගැඹුරු පිටපත යනාදිය) කැමති නම් ලො-ඩෑෂ් භාවිතා කරන්න. ඔබට ක්ෂණික කාර්යසාධනයක් අවශ්‍ය නම් සහ වඩාත් වැදගත් වන්නේ දේශීය ඒපීඅයි හි එළිමහනේ දී විකල්පයක් සඳහා පදිංචි වීමට කමක් නැත. අදහස් සහිත වැඩමුළු. එය ඉක්මනින් සිදුවනු ඇත. කාලය.
  • තුන්වන විසඳුමක් පවා තිබේ. DIY! ඔබේ පරිසරය දැන ගන්න. නොගැලපීම් ගැන දැන ගන්න. ඔවුන්ගේ ( ජෝන්-ඩේවිඩ්ගේ සහ ජෙරමිගේ ) කේතය කියවන්න. අනුකූලතාව / අනුකූලතා තට්ටුවක් සැබවින්ම අවශ්‍ය වන්නේ ඇයිද යන්න පැහැදිලි කිරීමට සහ ඔබේ කාර්ය ප්‍රවාහය වැඩි කිරීමට හෝ ඔබගේ යෙදුමේ ක්‍රියාකාරිත්වය වැඩි දියුණු කිරීමට හේතුවකින් තොරව මෙය භාවිතා නොකරන්න. ඔබටම ලිවීමට පරිපූර්ණව හැකි සරල පොලිෆිල් එකකින් ඔබේ අවශ්‍යතා තෘප්තිමත් වීමට බොහෝ දුරට ඉඩ ඇත. පුස්තකාල දෙකම සීනි ස්වල්පයක් සහිත සරල වැනිලා ය. ඔවුන් දෙදෙනාම සටන් කරන්නේ පැණිරස පයි සේවය කරන්නේ කවුරුන්ද යන්න පිළිබඳව ය . නමුත් මාව විශ්වාස කරන්න, අවසානයේදී දෙදෙනාම වතුරෙන් පිසීම පමණි. වැනිලා දෙවියෙක් නැත, එබැවින් වැනිලා පාප්වරයෙකු සිටිය නොහැක, නේද?

ඔබේ අවශ්‍යතාවන්ට වඩාත්ම ගැලපෙන ඕනෑම ප්‍රවේශයක් තෝරන්න. සාමාන්ය විදියට. ඕනෑම වේලාවක මතභේදාත්මක ධාවන කාල වංචාවන්ට වඩා සත්‍ය ලෙස ක්‍රියාත්මක කිරීමට මම කැමැත්තෙමි, නමුත් එය වර්තමානයේ රසයේ කාරණයක් ලෙස පෙනේ. Http://developer.mozilla.com සහ http://caniuse.com වැනි ගුණාත්මක සම්පත් වලට ඇලී සිටින්න, එවිට ඔබ හොඳ වනු ඇත.


ලූකස් පළ කිරීම ගැන ස්තූතියි. බිල්ට් ඉන් තවදුරටත් ප්‍රශස්තිකරණය කළ හැකිද? පුස්තකාල හා සැසඳිය හැකි ප්‍රශස්තිකරණයන් වලක්වන ප්‍රමිති මගින් ඔවුන්ට සීමාවන් පනවා ඇති බව මම රැස් කර ගත්තෙමි, නමුත් විස්තර නොතකා හෝ මෙය සත්‍යයක්ද නැද්ද යන්න මම නොදනිමි.
බ්‍රයන් එම් හන්ට්

උදා: "99% භාවිතා කිරීමේ අවස්ථාව ප්‍රශස්තිකරණය කිරීමෙන්, fast.js ක්‍රම ඔවුන්ගේ ස්වදේශීය සමානකම් වලට වඩා 5x වේගවත් විය හැකිය." - github.com/codemix/fast.js
බ්‍රයන් එම්. හන්ට්

1
හායි බ්‍රයන්, මෙය නොමඟ යවන සුළු නම් මට කණගාටුයි, එම පුස්තකාල ඒවායේ ස්වදේශික සමානකම් වලට වඩා වේගවත් නොවන බව කීමට මම අදහස් නොකළෙමි. ඔබට මේ වන විට කාර්ය සාධනය පිළිබඳ දැඩි අවශ්‍යතාවයක් තිබේ නම් , සම්මත ක්‍රම වේගයෙන් ක්‍රියාත්මක කිරීම සපයන බැවින් ඔබට LoDash හෝ fast.js වැනි මෙවලම් කට්ටලයක් ලබා ගැනීම වඩා හොඳය. නමුත් ඔබ ස්වදේශීය ක්‍රමවේදයන්ට යටත් නොවන පුස්තකාලයක් භාවිතා කිරීමට තෝරා ගන්නේ නම්, ඔබ විසින් ගොඩනඟන ලද අනාගත කාර්ය සාධන ප්‍රශස්තිකරණයන් මග හැරෙනු ඇත. බ්‍රව්සර් අවසානයේ පරිණාමය වනු ඇත.
ලූකස් බන්ගර්

4
බ්‍රව්සර් “නිෂ්පාදකයින්ට” ඔවුන්ගේ බ්‍රව්සර් ප්‍රමිතීන්ට අනුකූලව තබා ගැනීමට අපහසු වේ. දේශීය ක්‍රියාත්මක කිරීම් වල බොහෝ කාර්ය සාධනයන් වේගවත් දෘඩාංගවල ප්‍රති result ලයකි. "ස්වදේශීය ක්‍රියාත්මක කිරීම් අල්ලා ගනු ඇත" නිදහසට කරුණ වසර ගණනාවක් තිස්සේ පැවතුනි. අවුරුදු = අන්තර්ජාලයේ සදාකාලිකත්වය. නම් දේශීය නිර්මාණයන් මෙතෙක් නිමාවත්, පුස්තකාල ඒවා භාවිතා කිරීමට යාවත්කාලීන කිරීම ද සිදු කරනු ලැබේ. විවෘත මූලාශ්‍රය පිළිබඳ සිසිල් දෙය එයයි. යෙදුම් dev නවතම පුස්තකාලයට යාවත්කාලීන නොකරන්නේ නම්, ඔවුන්ගේ යෙදුම හදිසියේම මන්දගාමී නොවනු ඇත, එය වේගවත් නොවේ.
ඇන්ඩ rew ස්ටීට්ස්

2
... නමුත් ඔබ ඔවුන්ගෙන් Array.fromඇසුවොත් ඔවුන් කළ යුත්තේ කුමක්දැයි නොදැන සිටිති. ජේඑස් “උපයෝගිතා පටිය” ජනතාව ඔවුන්ගේ අනවශ්‍ය වැඩ කටයුතු ප්‍රවර්ධනය කිරීම ගැන ඕනෑවට වඩා සැලකිලිමත් වන බව පෙනේ. එසේ කිරීමෙන් ඔවුන් ප්‍රමිතිකරණ ක්‍රියාවලිය තනුක කරන බව අමතක කිරීමට නැඹුරු වේ. විශේෂාංග අවශ්‍ය නොවීම බ්‍රව්සර් “නිෂ්පාදකයින්” මත පීඩනයක් ඇති නොකරයි. විනෝදජනක කාරණය: ප්‍රධාන බ්‍රව්සර් 4 න් 2 ක්ම විවෘත මූලාශ්‍ර ව්‍යාපෘති මත පදනම් වේ ( 1 , 2 ).
ලූකස් බන්ගර්

21

මෙහි සඳහන් බොහෝ දේ සමඟ මම එකඟ වෙමි, නමුත් මට අවශ්‍ය වන්නේ underscore.js ට පක්ෂව තර්කයක් පෙන්වා දීමට ය: පුස්තකාලයේ ප්‍රමාණය.

විශේෂයෙන් ඔබ බොහෝ විට ජංගම උපාංගවල භාවිතා කිරීමට අදහස් කරන යෙදුමක් හෝ වෙබ් අඩවියක් සංවර්ධනය කරන්නේ නම්, එහි ප්‍රති ing ලයක් ලෙස ඇති වන මිටියේ ප්‍රමාණය සහ ඇරඹුම් හෝ බාගත කිරීමේ වේලාවට ඇති බලපෑම වැදගත් කාර්යභාරයක් ඉටු කළ හැකිය.

සංසන්දනය කිරීම සඳහා, අයනික සර්විස් ධාවනය කිරීමෙන් පසු ප්‍රභව-සිතියම්-ගවේෂකය සමඟ මා දුටු ඒවා නම්:

lodash: 523kB
underscore.js: 51.6kb

සංස්කරණය කරන ලද්දේ 2020 පෙබරවාරි :

භාවිතා කළ හැකි BundlePhobia වත්මන් ප්රමාණය පරීක්ෂා කිරීමට ලෝ-ඉර හා Underscore


1
ස්තූතියි පීටර්, මෙය මෙහි සටහන් කිරීම වටී. Gist.github.com/alekseykulikov/5f4a6ca69e7b4ebed726 ඇතුළුව තවත් තැනක තවත් සාකච්ඡා ඇත. (මෙම පිළිතුර වෙනත් සාකච්ඡා කිහිපයක් සම්බන්ධ කිරීමෙන් සහ අදාළ බිටු උපුටා දැක්වීමෙන් වැඩි දියුණු කළ හැකිය) ලොඩාෂ්හි උප කොටස් සහ ගස් සෙලවීමේ ලොඩාෂ් තෝරා ගැනීමෙන් ප්‍රමාණයේ වෙනස අඩු කළ හැකිය. 🕷
බ්‍රයන් එම්. හන්ට්

1
ඔබේ පිළිතුර සඳහා බ්‍රයන් එම්. හන්ට්, ලොඩාෂ්හි උප කොටස් ඇතුළත් කළ හැකි බව දැන සිටියේ නැත. මෑතකදී අයනික-ස්වදේශිකයන් සමඟ අයෝනික් ඔවුන්ගේ ස්වදේශික ලිබ් සඳහාද එවැනි මාවතක් ගෙන ගියේය, යෙදුම් ප්‍රමාණය ගැන වැඩි වැඩියෙන් සැලකිලිමත් වන බව සැලකිල්ලට ගැනීම හොඳය
ඩේවිඩ් ඩල් බුස්කෝ

2
මම හිතන්නේ ඔබට 523kB ලැබුනේ කොහෙන්ද? lodash.com පවසන්නේ එය සම්පීඩිත 24kB පමණක් බවයි. බාගත කර ඇත්තේ 74kB පමණි
Martian2049

1
මගේ සටහන අප්රේල් 2017 දී සාදන ලදී. මම මගේ අදහස් දැක්වීමේදී පැවසූ පරිදි,source-map-explorer after running ionic serve
ඩේවිඩ් ඩල් බුස්කෝ

5
2018 මාර්තු මාසයේදී - lodash.min.js 72,5 kB වන අතර underscore-min.js 16,4 kB වේ
ඒකාබද්ධ

10

OP යන්නෙන් අදහස් කරන්නේ එය දැයි නිශ්චිතවම කිව නොහැක, නමුත් මම මෙම ප්‍රශ්නය ඇසුවේ අවතක්සේරු කිරීමේ සිට ලොඩාෂ් වෙත සංක්‍රමණය වන විට මතක තබා ගත යුතු කරුණු ලැයිස්තුවක් මා සොයමින් සිටි බැවිනි.

එවැනි වෙනස්කම් පිළිබඳ සම්පූර්ණ ලැයිස්තුවක් සහිත ලිපියක් යමෙකු පළ කළහොත් මම අගය කරමි. මම අමාරුවෙන් ඉගෙන ගත් දේවල් සමඟ ආරම්භ කිරීමට මට ඉඩ දෙන්න (එනම්, මගේ කේතය නිෂ්පාදනය මත පුපුරා ගිය දේවල්: /):

  • _.flattenඅවධාරනය පෙරනිමියෙන් ගැඹුරු වන අතර එය නොගැඹුරු බවට පත් කිරීම සඳහා ඔබ දෙවන තර්කය ලෙස සත්‍යය සමත් විය යුතුය. ලොඩාෂ් වලදී එය පෙරනිමියෙන් නොගැඹුරු වන අතර දෙවන තර්කය ලෙස සත්‍යය පසු කිරීම ගැඹුරු කරයි! :)
  • _.lastඅවධාරනය කරන්නේ ඔබට අවශ්‍ය මූලද්‍රව්‍ය ගණන කීයක් පවසන දෙවන තර්කයයි. තුළ lodashඑවැනි විකල්පයක් නොමැත. ඔබට මෙය අනුකරණය කළ හැකිය.slice
  • _.first (එකම ප්‍රශ්නය)
  • _.templateයටි ඉරි වලින් බොහෝ ආකාරවලින් භාවිතා කළ හැකිය, ඉන් එකක් වන්නේ අච්චු නූල සහ දත්ත සැපයීම සහ HTMLනැවත ලබා ගැනීමයි (හෝ අවම වශයෙන් එය කලකට පෙර ක්‍රියා කළ ආකාරයයි). දී lodashඔබ පසුව දත්ත සමඟ පෝෂණය යුතු උත්සවයකට ලැබේ.
  • _(something).map(foo)අවතක්සේරු කරයි, නමුත් ලොඩාෂ් වලදී මට එය නැවත ලිවීමට සිදු විය _.map(something,foo). සමහර විට එය නිකම්ම නිකම් TypeScriptනිකුතුවක් විය හැකිය

4
ලොඩාෂ් වලදී, දම්වැල කම්මැලි අනුකාරකයක් පසුකර යන අතර අවශ්‍ය හා අවසාන ලක්ෂ්‍යය අවශ්‍ය වේ _(something).map(foo).value().
බ්‍රයන් එම්. හන්ට්

ඔබ මෙම පුස්තකාල වෙත ප්‍රොක්සි ඇමතුම් ලබා දෙන පසුබිම් එකතුව භාවිතා කරන්නේ නම් මේ සියල්ල ඔබට පහර දිය හැකිය - නිදසුනක් ලෙස collection.first (5) මඟින් ඔබට පළමු මූලද්‍රව්‍ය 5 ලබා නොදෙන අතර පළමු එක ලබා දෙනු ඇත :)
qbolec

8

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

බෙන් මැකෝමික් විසින් රචිත නවතම ලිපිය:

  1. Lo-Dash හි API යනු අන්ඩර්ස්කෝර් හි සුපර්සෙට් එකකි.

  2. හුඩ් යටතේ [ලො-ඩෑෂ්] සම්පූර්ණයෙන්ම නැවත ලියා ඇත.

  3. ලො-ඩෑෂ් නිසැකවම අන්ඩර්ස්කෝර්ට වඩා මන්දගාමී නොවේ.

  4. Lo-Dash එකතු කර ඇත්තේ කුමක්ද?

    • උපයෝගීතා වැඩි දියුණු කිරීම්
    • අමතර ක්‍රියාකාරිත්වය
    • කාර්ය සාධනය ලබා ගනී
    • දම්වැල සඳහා කෙටිකාලීන සින්ටැක්ස්
    • ඔබට අවශ්‍ය දේ පමණක් භාවිතා කිරීමට අභිරුචි ගොඩනැඟිලි
    • අර්ථකථන අනුවාදය සහ 100% කේත ආවරණය

6

මට එක වෙනසක් මට හමු විය. Lodash ගේ නොවන underscore-අනුකූල අනුවාදය _.extend()කරන්නේ නෑ පන්ති මට්ටමේ අර්ථ ගුණ හෝ ක්රම වැඩි පිටපත් කරගන්න.

මෙය පෙන්නුම් කරන කෝපි ස්ක්‍රිප්ට් හි මම ජැස්මින් පරීක්ෂණයක් නිර්මාණය කර ඇත්තෙමි.

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

වාසනාවකට මෙන්, lodash.underscore.jsසියල්ල පිටපත් කිරීමේ අන්ඩර්ස්කෝර්ගේ හැසිරීම ආරක්ෂා කරයි, එය මගේ තත්වය සඳහා අපේක්ෂිත හැසිරීම විය.


4

ලෝඩාෂ් ලැබී ඇත්තේ _.mapValues()එය අවතක්සේරු කිරීමට සමාන ය _.mapObject().


0

බොහෝ දුරට අවධාරනය වන්නේ ලොඩාෂ් හි උප කුලකයයි. සමහර විට, දැනට අවධාරනය කර ඇති ආකාරයට සිසිල් කුඩා කාර්යයන් ඇත, ලොඩාෂ් සිතියම් ඕබෙක්ට් වැනි නැත. මෙය මගේ ව්‍යාපෘතියේ දියුණුව සඳහා බොහෝ කාලයක් ඉතිරි කළේය.


ඒ වන විට, අපට ඇත්තේ _.mapValues
crapthings

apcrapthings - මෙම පෝස්ට් කරන අවස්ථාවේ දී මම මැයි අගය සහ සිතියම් කීස් ගැන දැන සිටිය නමුත් ඒවා සිතියම් වස්තුවට සමාන නොවේ. සමහර විට එකකට වඩා එකක් යෙදීමට අවස්ථා ඇති නමුත් mapObject යනු එයටම ආවේණික වූ ශ්‍රිතයකි.
rashadb

0

ඔවුන් බොහෝ සෙයින් සමාන ය, ලොඩාෂ් භාර ගනී ...

ඔවුන් දෙදෙනාම ජාවාස්ක්‍රිප්ට් හි උපයෝගීතා ලෝකය ගෙන යන උපයෝගිතා පුස්තකාලයකි ...

පෙනෙන ආකාරයට දැන් ලෝඩාෂ් යාවත්කාලීන වෙමින් පවතී, එබැවින් නවතම ව්‍යාපෘති සඳහා වැඩිපුර භාවිතා වේ ...

Lodash KBs කිහිපයක් විසින් සැහැල්ලු පෙනේ ...

දෙදෙනාම හොඳ api සහ doc ඇත, නමුත් මම හිතන්නේ Lodash එකක් වඩා හොඳයි ...

අරාවෙහි පළමු අගය ලබා ගැනීම සඳහා එක් එක් ලේඛනය සඳහා තිර රුව මෙන්න ...

අවධාරනය:

අවධාරනය කරන්න

lodash: ලොඩාෂ්

දේවල් වරින් වර යාවත්කාලීන වන බැවින්, ඔවුන්ගේ වෙබ් අඩවිය ද පරීක්ෂා කරන්න ...

ලොඩාෂ්

අවධාරනය කරන්න

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.