javascript - जावास्क्रिप्ट लाइब्रेरी के लिए अग्रणी LINQ क्या है?




json (7)

आप linq.js को देखना चाह सकते हैं। यह .NET लैम्बडा सिंटैक्स का पालन करता है और माइक्रोसॉफ्ट पर्यावरण में अच्छी तरह से एकीकृत दिखता है।

जावास्क्रिप्ट के लिए LINQ - http://linqjs.codeplex.com/

पेशेवरों

  • सभी .NET 4.0 विधियों को लागू करता है
  • पूरा आलसी मूल्यांकन
  • विजुअलस्टूडियो के लिए पूर्ण IntelliSense समर्थन
  • JQuery का समर्थन करता है
  • विंडोज स्क्रिप्ट होस्ट का समर्थन करता है
  • जावास्क्रिप्ट (आरएक्सजेएस) और इंटेलिसेन्स जेनरेटर के लिए प्रतिक्रियाशील एक्सटेंशन के लिए बाध्यकारी
  • NuGet समर्थन स्थापित करें
  • हाल ही में अपडेट किया गया (अंतिम रिलीज जनवरी 2011)
  • सिंटेक्स सी # में लैम्ब्डा सिंटैक्स के अनुरूप है

विपक्ष

  • Linq.js लाइब्रेरी थोड़ा बड़ा है।
  • यदि आप पहले से ही jQuery या अन्य जेएस लाइब्रेरी का उपयोग कर रहे हैं, तो सबसे अधिक उपयोग की जाने वाली कार्यक्षमता शायद पहले ही उपलब्ध है। विशेष रूप से jQuery के filter , और 'कोई भी' विधियां देखें।

मैं एक जावास्क्रिप्ट लाइब्रेरी की तलाश में हूं जो मुझे LINQ-like वाक्यविन्यास का उपयोग कर जटिल JSON ऑब्जेक्ट्स से पूछने की अनुमति देगा। एक त्वरित खोज में कुछ आशाजनक विकल्प पाए गए जो दिखते हैं कि वे मुझे जो ऑफर कर सकते हैं:

LINQ से जावास्क्रिप्ट और jLinq

  • क्या किसी के पास उनका उपयोग करने का कोई अनुभव है?
  • कुछ पेशेवर और विपक्ष क्या हैं?
  • प्रदर्शन तुलनात्मक है?
  • क्या LINQ से जावास्क्रिप्ट का फ़ंक्शन-पासिंग सिंटैक्स कोई छुपा लाभ प्रदान करता है (मुझे व्यक्तिगत रूप से जेएलएनक का सिंटैक्स अधिक नज़र में अधिक आकर्षक लगता है)?
  • किसी भी परियोजना में आपको क्या कमी है?
  • क्या आपने कभी लेखकों से संपर्क करने का प्रयास किया था? वे कितने उत्तरदायी थे?
  • किस परियोजना का व्यापक रूप से उपयोग किया जाता है?

संपादित करें:

बस आज यह देखा: jslinq

मुझे लगता है कि यह पूरी कोशिश करने वाला पहला व्यक्ति होगा।



मैं इस तरह कुछ ढूंढ रहा हूं और पार आया ...

http://www.hugoware.net/Projects/jLinq

यह वास्तव में बहुत अच्छा लग रहा है! हो सकता है कि मैं सिर्फ jQuery जैसे कुछ के माध्यम से ईवेंट हैंडलर सेट करने की तुलना में आरएक्स और अवलोकनों के बिंदु को समझ नहीं पा रहा हूं।


मैं व्यक्तिगत रूप से LINQ / सेट ऑपरेशंस यूनियन, इंटरसेक्ट, एक्सेप्ट और डिफिंट को .NET में संख्याओं पर पाता हूं। बहुत उपयोगी। JQuery एरे उपयोगिता नामक एक jquery प्लगइन है जो इन विधियों को सरणी पर उपयोग करने के लिए प्रदान करता है।

कोड उदाहरण:

$.distinct([1, 2, 2, 3])

रिटर्न [1,2,3]

$.union([1, 2, 2, 3], [2, 3, 4, 5, 5])

रिटर्न [1,2,3,4,5]

$.instersect([1, 2, 2, 3], [2, 3, 4, 5, 5])

रिटर्न [2,3]

$.except([1, 2, 2, 3], [3, 4, 5, 5])

रिटर्न [1, 2]


मैंने हाल ही में जावास्क्रिप्ट के लिए LINQ लाइब्रेरी बनाई है। इसने .NET द्वारा प्रदान किए गए अधिकांश LINQ फ़ंक्शंस को कार्यान्वित किया और यह सभी LINQ पुस्तकालयों में से सबसे तेज़ है।

http://fromjs.codeplex.com/


वहां कुछ डुप्लीकेटिंग लाइब्रेरी हैं जो LINQ को जावास्क्रिप्ट को समान सिंटैक्स और विधि नामों से पोर्ट करने का प्रयास करते हैं। हालांकि, जेएस समुदाय में, लाइब्रेरी जो वास्तव में लोकप्रिय हो रही है और समान कार्यक्षमता प्रदान कर रही है underscore.js


$ linq: http://jscriptlinq.codeplex.com/

var users = [{username: "asmith", domain: "north_america"},
    {username: "tmcfarland", domain: "europe"},
    {username: "cdeckard", domain: "nort_america"}];

var groups = [{user: "ASMITH", groupName: "base_users"},
    {user: "TMCFARLAND", groupName: "admins"},
    {user: "CDECKARD", groupName: "base_users"},
    {user: "CDECKARD", groupName: "testers"}];

var results = $linq(users).join(groups,
    function (x) { return x.username; },    // key for 'users'
    "x => x.user",                          // key for 'groups'
    function (outer, inner)                 // function to generate results
    { 
        return "user: " + outer.username + 
            ", domain: " + outer.domain +
            ", group: " + inner.groupName;
    },
    "(x, y) => x.toLowerCase() == y.toLowerCase()");    // compare keys case-insensitively





linq