জাভাস্ক্রিপ্ট লাইব্রেরির জন্য শীর্ষস্থানীয় লিনকিউ কী? [বন্ধ]


95

আমি একটি জাভাস্ক্রিপ্ট লাইব্রেরি খুঁজছি যা আমাকে লিনকিউ-এর মতো সিনট্যাক্স ব্যবহার করে জটিল জেএসওএন অবজেক্টগুলিকে জিজ্ঞাসা করার অনুমতি দেবে। একটি দ্রুত অনুসন্ধানে বেশ কয়েকটি আশাব্যঞ্জক বিকল্পের সন্ধান পেয়েছে যা দেখে মনে হচ্ছে তারা আমার যা প্রয়োজন তা দিতে পারে:

জাভাস্ক্রিপ্ট এবং jLinq থেকে লিনক

  • এগুলি ব্যবহার করে কারও কি কোনও অভিজ্ঞতা আছে?
  • কিছু ভাল এবং কনস কি?
  • পারফরম্যান্স কি তুলনাযোগ্য?
  • জাভাস্ক্রিপ্টে লিনকিউ-এর ফাংশন-পাসিং সিনট্যাক্সগুলি কি কোনও লুকানো সুবিধাগুলি সরবরাহ করে (আমি ব্যক্তিগতভাবে jLinq এর সিনট্যাক্সটিকে প্রথম নজরে আরও আকর্ষণীয় মনে করি)?
  • কোন প্রকল্পে কিসের অভাব খুঁজে পেয়েছেন?
  • আপনি কি কখনও লেখকদের সাথে যোগাযোগের চেষ্টা করেছিলেন? তারা কতটা প্রতিক্রিয়াশীল ছিল?
  • কোন প্রকল্প আরও ব্যাপকভাবে ব্যবহৃত হয়?

আমি মনে করি একটি সম্পূর্ণ চেষ্টা করার জন্য এটিই প্রথম হবে।


আমি সবেমাত্র jinqJs.com ওপেন সোর্স প্রকল্প প্রকাশ করেছি, এটি আপনাকে সহায়তা করবে।
এনওয়াইটম

লিনিকিউ 4 ইএস 2015, একই সি # সিনট্যাক্স সহ সমস্ত লিনিক পদ্ধতিতে ফার্মিয়াম-co.github.io/LINQ4ES2015 চেষ্টা করুন । নির্দিষ্টকরণের বস্তুর জন্য একই। নেট লিংক প্রয়োগ করা হয়েছে Imp
ইয়াসের মুরাদী

কয়েক বছর আগে আমি dinqyjs.com প্রকাশ করেছি, একটি লিনকের মতো সিনট্যাক্স এবং প্রচুর কার্যকারিতা রয়েছে।
গ্যারিপ

4
এই প্রশ্নের বয়স এবং ন্যায়ত বন্ধ, কিন্তু পাঠকদের যারা জুড়ে ঘটতে জন্য, LINQ প্রধান বৈশিষ্ট্য (ফিল্টারিং রূপান্তর, এবং সমষ্টি) সালে নির্মিত ব্যবহার সম্পাদনা করা যেতে পারে filter, mapএবং reduceঅ্যারের ফাংশন। নতুন ল্যাম্বডা সিনট্যাক্স কোডটিকে লিনকু কোডের সাথে অনেক বেশি অনুরূপ করতে সহায়তা করে।
jpmc26

কয়েক মাস আগে আমি মুক্তি পেয়েছিLinq-Collections ( npmjs.com/package/linq-colifications )। এটি বিলম্বিত দ্রুত কার্যকর হওয়ার জন্য মুলতবি কার্যকর এবং টন অভ্যন্তরীণ অনুকূলকরণ ব্যবহার করে ations মাইক্রোসফ্টের স্ট্যান্ডার্ডের ভিত্তিতে (আপনি যদি সি # লিনাক জানেন তবে আপনি লিনাক-সংগ্রহগুলি জানেন)
ইভান

উত্তর:


13

আপনি কি জাভাস্ক্রিপ্টের জন্য আরএক্স দেখেছেন ? তাহলে এটাই আপনি চান.


4
আমি এটি প্রস্তাব করতে যাচ্ছিলাম তবে এটি বস্তুর তুলনায় লিনকের মতো নয়। (যদি এটি হয় তবে আমাদের .NET- এ আরক্স এবং লিনক উভয়েরই কেন প্রয়োজন হবে?) তথ্য প্রবাহের ক্ষেত্রে এটি স্বাভাবিক লিনকের বিপরীত দিকে কাজ করে।
ড্যানিয়েল আর্উইকার

25
আমি ঘৃণা করি যে এটি গৃহীত উত্তর। হ্যাঁ, অবশ্যই, এটি একাডেমিকভাবে আকর্ষণীয় যে .NET এ পর্যবেক্ষণযোগ্য গণনাগুলির সাথে সমান, তবে কী? এই প্রশ্নটি খুঁজে পাওয়া প্রায় কেউই আসলে আরএক্স / পর্যবেক্ষণযোগ্যদের চায় না (ইতিমধ্যে নকআউট, অ্যাঙ্গুলারজ ইত্যাদিতে এর আরও অনেক কার্যকর বাস্তবায়ন রয়েছে) এবং উত্তরটি নিজেই প্রাসঙ্গিকতাটি ব্যাখ্যা করার চেষ্টাও করে না, এমনকি এটি থাকলেও সত্যিই সবচেয়ে উপযুক্ত পছন্দ, এটি খুব কমই "নেতৃত্বাধীন" - এটিতে লিনক.জেএস এর প্রায় 1/5 টি ডাউনলোড রয়েছে has
অ্যারোনআউট

4
@ অ্যারোনট উত্তরটি 3 বছর আগে দেওয়া হয়েছিল, এবং পরিস্থিতি অবশ্যই পরিবর্তিত হয়েছে, এবং লিনাক্স.জে এখন এখন যা ছিল তার থেকে অনেক আগে এগিয়ে। সেই সময়, আমি বিশ্বাস করি যে জেএসের সাথে লিনকিউ অপারেশন করার জন্য rx.js সবচেয়ে ভাল বাজি ছিল, কারণ অন্যান্য লাইব্রেরিগুলি দুর্দান্ত বা অসম্পূর্ণ ছিল না এবং আরএক্সটিতে ফুলটাইম বিকাশকারীরা এতে কাজ করেছিল। এছাড়াও, জাভাস্ক্রিপ্টে অ্যাসিঙ্কটি গুরুত্বপূর্ণ ছিল এবং এখনও আইএমও - যা আপনি পর্যবেক্ষণযোগ্যদের সাথে পাবেন। পরিশেষে, দ্রষ্টব্য আরক্সে পর্যবেক্ষণগুলি নকআউট এবং অ্যাঙ্গুলার জেএস পর্যবেক্ষণগুলির থেকে খুব আলাদা এবং বিভিন্ন উদ্দেশ্যে পরিবেশন করা হয়। আপনার মতামত দ্রষ্টব্য, এবং আপনি ভোট দিতে নির্দ্বিধায়! :)
রিচার্ড অ্যান্টনি হেইন

4
@ অ্যারোনআউট আরও একটি নোট ... যদি কেউ জাভাস্ক্রিপ্টের জন্য লিনকিউ সম্পর্কিত লাইব্রেরি খুঁজছেন, তবে অবশ্যই তাদের অবশ্যই আরএক্স সম্পর্কে জানা উচিত, কারণ এটি 100% লিনকিউ, এবং লিনকু জানা কিন্তু আরএক্স না আসলেই কেবল অর্ধেক গল্প জানে। চিয়ার্স
রিচার্ড অ্যান্টনি হেইন

4
হয়েছে RX, Linq, এবং জাভাস্ক্রিপ্ট সঙ্গে ছিল ব্যাপক অভিজ্ঞতা হচ্ছে, আমি দ্বিধা ছাড়াই বলতে পারি যে কেউ Linq মত লাইব্রেরির জন্য জাভাস্ক্রিপ্ট স্পষ্টভাবে নেই খুঁজছেন না হয়েছে RX সম্পর্কে জানা প্রয়োজন, এবং এটি কেবলমাত্র অর্ধেক গল্প যদি তোমরা বিশেষভাবে "গল্প" define অর্ধেক RX হতে। অন্যথায় দাবি করা জলের জলে হ্রাস করা এবং সাধারণ প্রয়োজনীয়তার সাথে তাদের বিকল্পগুলি বোঝা আরও জটিল করে তুলছে। এটি এমন কাউকে বলার মতো যা সাইকেল সন্ধান করছে তাদের প্রথমে মোটরসাইকেল সম্পর্কে শিখতে হবে; অবশ্যই, সম্পর্কটি আকর্ষণীয়, তবে প্রসঙ্গে বিশেষভাবে কার্যকর নয়।
অ্যারোনআউট

71

আপনি লিনাক.জে গুলি পরীক্ষা করতে চাইতে পারেন । এটি .NET ল্যাম্বদা সিনট্যাক্স অনুসরণ করে এবং একটি মাইক্রোসফ্ট পরিবেশে ভালভাবে সংহত করা দেখায়।

জাভাস্ক্রিপ্টের জন্য লাইনকিউ - http://linqjs.codeplex.com/

পেশাদাররা

  • সমস্ত .NET 4.0 পদ্ধতি প্রয়োগ করে
  • অলস মূল্যায়ন সম্পূর্ণ করুন
  • ভিজ্যুয়ালস্টুডিওর জন্য পূর্ণ ইন্টেলিজেন্স সমর্থন
  • JQuery সমর্থন করে
  • উইন্ডোজ স্ক্রিপ্ট হোস্ট সমর্থন করে
  • জাভাস্ক্রিপ্ট (আরএক্সজেএস) এবং ইন্টেলিজেন্স জেনারেটরের প্রতিক্রিয়াশীল এক্সটেনশনের জন্য বাঁধাই
  • NuGet ইনস্টল সমর্থন
  • সম্প্রতি আপডেট হয়েছে (শেষ প্রকাশ জানুয়ারী ২০১১)
  • সিনট্যাক্স সি # তে ল্যাম্বডা সিনট্যাক্সের সাথে সঙ্গতিপূর্ণ

কনস

  • লিনক.জেএস লাইব্রেরিটি কিছুটা বড়।
  • আপনি যদি ইতিমধ্যে jQuery বা অন্যান্য জেএস লাইব্রেরি ব্যবহার করছেন তবে সর্বাধিক ব্যবহৃত কার্যকারিতা সম্ভবত ইতিমধ্যে উপলব্ধ। বিশেষত jQuery এর ফিল্টার এবং 'যে কোনও' পদ্ধতি দেখুন।

4
বিভিন্ন linq মত লাইব্রেরির জন্য শুধু পাওয়া কর্মক্ষমতা তুলনা: danieltao.com/lazy.js/comparisons.html
আলেক্সি এফ

টাইপস্ক্রিপ্ট ডিএফ ফাইলটি হট!
কেভিপি

4
পছন্দ করুন
অ্যালেক্স

34

সর্বাধিক প্রাথমিক এবং ঘন ঘন ব্যবহৃত লিনক অপারেটরগুলি বহুল ব্যবহৃত জেএস লাইব্রেরিতে খুব সাধারণভাবে সংজ্ঞায়িত হয়। তাদের ঠিক আলাদা আলাদা নাম রয়েছে (আসলে লিনকের চেয়ে তাদের প্রচলিত নাম রয়েছে)। Selectহয়ে map, Whereহয়ে filter, Firstএবং FirstOrDefaultপরিণত [0]

প্রায় কোনও লাইব্রেরি সম্পর্কে আমি জানি না (যার সাথে আমি মনে করি যার সাথে আপনি লিঙ্ক করেছেন) এটি এনট লিন্কের মতো বাস্তবায়নটিকে অলস করে তোলে, তারা কেবল অ্যারে ব্যবহার করে তাত্ক্ষণিক মূল্যায়ন করে।

খুব সুন্দর, কার্যক্ষম তালিকার ক্রিয়াকলাপের সম্পূর্ণ সেটের জন্য, চেষ্টা করুন: http://osteele.com/sources/javascript/functional/


লিনকিউয়ের সাথে পরিচিত হওয়া, সিনট্যাক্সের অনেকাংশ একই রাখলে একটি বিশাল সহায়ক হবে। অলস লোডিং কোনও উদ্বেগ নয়। এটির মতো আমার সমস্ত কার্যকারিতা রয়েছে বলে মনে হয় তবে আমাকে কিছু পরীক্ষা-নিরীক্ষা করতে হবে। আমি আপাতত প্রশ্নটি উন্মুক্ত রাখছি, এই আশায় যে কেউ জাভাস্ক্রিপ্ট লিনকু লাইব্রেরি ব্যবহার করেছে এবং তাদের অভিজ্ঞতা ভাগ করে নিয়েছে তাতে হোঁচট খাবে। কিছুক্ষন যাওয়ার পরে, অন্য কেউ না করলে আমি আপনাকে উত্তরটি নিশ্চিত করে দেব।
টম ট্রেসানস্কি

25
@ টম - আমি গ্রন্থাগারগুলি থেকে কিছুটা সতর্ক হতে চাই যে ভাষা ওয়ানের অভ্যন্তরে X ভাষা ব্যবহারের অভিজ্ঞতাকে অনুকরণ করার চেষ্টা করা হয়েছে যদি ভাষা ওয়াইতে ইতিমধ্যে একই জিনিস করার ভাল উপায় থাকে তবে আমি মনে করি "বুদ্ধিমানগুলি শেখা ভাল" "ভাষার ভাষার ওয়াই। লোকেরা লিনক বের হওয়ার আগে জেএসে কার্যকরী সিকোয়েন্স অপারেটর লিখছিল, এবং জেএসে তারা" traditionalতিহ্যবাহী "লিস্পির নাম এবং পন্থাগুলি রেখেছিল, এখন এটি আরও জেএস স্টাইল। তাই আমি বলতে "যখন রোমের ..." এমনকি আমি কোঁকড়া ধনুর্বন্ধনী, যা উল্লম্বভাবে C # লাইন আপ খুঁজে রাখা পরিমাণ, কিন্তু জাতীয় এবং জাভা আমি একই লাইনে, ইত্যাদি উপর প্রথম এক করা
ড্যানিয়েল Earwicker

4
খুব দরকারী উত্তর - বিশেষত এটি 'মানচিত্রে' মানচিত্রে 'নির্বাচন করুন'।
সেক্ষেত্রে

4
দুই অ্যারে যোগদান সম্পর্কে কি? আমি অ্যারে A এর উপাদানগুলি কীভাবে অ্যারে বিতে নেই সেগুলি কীভাবে পাবেন তা জানার চেষ্টা করছিলাম, তবে জিকুয়েরিতে এটি করার কোনও উপায় বলে মনে হচ্ছে না। এটি লিনকুতে বেশ তুচ্ছ।
নোল আব্রাহামস

@ নোয়েল আব্রাহামস - এই জাতীয় জিনিসের জন্য jQuery এর পরিবর্তে ES5 অ্যারে পদ্ধতিগুলি ব্যবহার করবেন না কেন? যেমনa1.filter(function(e) { return a2.indexOf(e) == -1; })
ড্যানিয়েল আরউইকার

10

আমি আন্ডারস্কোর.জেএস এ একবার দেখার পরামর্শ দিই । এটি অন্যের কারও মতো সরাসরি লাইনকিউ বন্দর নয়, এটি একটি অত্যন্ত আরামদায়ক "লিনকিউ-মত" অভিজ্ঞতা। এটি আমার প্রয়োজন সমস্ত ফিল্টার, সাজানো এবং প্রকল্প বিকল্পগুলিকে সমর্থন করে এবং চমৎকার ডকুমেন্টেশন এবং সম্প্রদায় সমর্থন রয়েছে।

জন্য বোনাস হিসাবে নকআউট ব্যবহারকারীদের , অ্যান্ডস্কোরকো রয়েছে যা ইনকন্ডোরের অ্যারে পদ্ধতিগুলিকে নকআউট পর্যবেক্ষণযোগ্য অ্যারেগুলিতে যুক্ত করে। ডেমো


4
আমি স্পষ্টতই আন্ডারস্কোরটিও সুপারিশ করব। দুর্ভাগ্যক্রমে উপলব্ধ সমস্ত গ্রন্থাগারগুলির কার্য সম্পাদনের অভাব রয়েছে। এসি # বিকাশকারী নিজেই হওয়ায় আমি জাভাস্ক্রিপ্ট ওরিয়েন্টেড লাইব্রেরির সাথে সি # সিনট্যাক্স পছন্দ করতে চাই তবে এর মতো কোনও উপলভ্য নেই। উপরোক্ত সমস্ত লাইব্রেরি হ'ল "জাভাস্ক্রিপ্ট র‌্যাপারস" যার অর্থ তারা লিনিকিউ ফাংশন সি # উপায়ে প্রয়োগ করার চেষ্টা করে। উদাহরণস্বরূপ, লিনক.জেগুলির দিকে তাদের একটি অভিধান রয়েছে যা প্রাপ্তির জন্য রৈখিক অনুসন্ধান করে J জাভাস্ক্রিপ্টের অবজেক্টটি এর সাথে একটি ডিকশনারি রয়েছে উন্নত পারফরম্যান্সের পরিবর্তে তারা গেটহ্যাশকোডস ইত্যাদি বাস্তবায়িত করেছে
জর্জ মাভ্রিতসাকিস

4
লিনকিউ এর স্বতন্ত্র বৈশিষ্ট্যটি অলস মূল্যায়ন। অ্যান্ডস্কোর.জেএস এর এই কার্যকারিতা নেই। তবে লডাশ রয়েছে যা আন্ডারস্কোরের সুপারস্টেট , আরও ভাল পারফর্মেন্স এবং শৃঙ্খলিত পদ্ধতিতে অলস মূল্যায়ন সমর্থন করে: var অ্যারে = _আরঞ্জ (1000); _ (আরআর) .ম্যাপ (ফাংশন (v) {রিটার্ন ভি + 1;}) filter ফিল্টার (ফাংশন (v) {রিটার্ন ভি% 2;})। নিন (100)। মূল্য ();
srgstm

4
হ্যাঁ ... এটি কিছুক্ষণ আগে লেখা হয়েছিল; আমি সম্ভবত এখন লোডাশেরও সুপারিশ করব। আমি লড্যাশ অনুমতি দেওয়ার জন্য অ্যান্ডসকোরকোকে জোর দিয়ে বিবেচনা করছি। তবে আমি নিশ্চিত নই যে আমি অলস মূল্যায়ন লিনকু'র "বৈশিষ্ট্য" স্বতন্ত্র বৈশিষ্ট্য agree বেশিরভাগ ক্ষেত্রে লিনকিউ সম্পর্কে আমার প্রশংসা হ'ল এটি সাধারণত জিনিসগুলি করার বিকল্প পদ্ধতির চেয়ে অভিপ্রায়টি আরও ভালভাবে যোগাযোগ করে। শুধু একটি ভাবনা. যে কোনও হারে উভয়ই ভাল গ্রন্থাগার।
ম্যাথু নিকোলস

4

আমি ব্যক্তিগতভাবে লাইনকিউ / সেট অপারেশন ইউনিয়ন, ইন্টারসেক্ট, এনটিএমে গণনার উপর পৃথকীকরণ এবং খুঁজে পাই। খুব দরকারী. এখানে 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])

প্রত্যাবর্তন [২,৩]

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

প্রত্যাবর্তন [1, 2]


এই প্যাকেজ jquery-অ্যারে-ইউটিলিটিগুলি বোরও ব্যবহার করে ইনস্টল করা যেতে পারে । আমি একটি অস্বীকৃতি যোগ করতে চাই যা আমি মূলত প্লাগইনটি তৈরি করেছি :)
ক্রিশ্চিয়ান আব্রাহামেন

3

$ লিনাক: 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

2

এখানে কিছু নকল লাইব্রেরি রয়েছে যা একই জাতীয় সিনট্যাক্স এবং পদ্ধতির নামের সাথে জাভাস্ক্রিপ্টে লিনকিউ পোর্ট করার চেষ্টা করে। তবে, জেএস সম্প্রদায়টিতে যে লাইব্রেরিটি সত্যই জনপ্রিয় হয়ে উঠছে এবং একই কার্যকারিতা সরবরাহ করে তা হ'ল অ্যান্ডসোর.জেএস


2

আমি এর বেশিরভাগ চেষ্টা করে দেখেছি - এবং আমি সত্যিই like লিনাক: http://jscriptlinq.codeplex.com/ সেরা পছন্দ করি। এটি সহজভাবে সেইভাবে কাজ করে যা আপনি সি # লিনাকের কাজ করবে বলে আশা করছেন - চেইন ক্ষমতা সহ।


1

আমি নিজেই এই জাতীয় কিছু খুঁজছি এবং এসে পৌঁছেছি ...

http://www.hugoware.net/ প্রকল্পগুলি / জে লিনিক

এটি সত্যিই দুর্দান্ত দেখাচ্ছে! JQuery এর মতো কোনও কিছুর মাধ্যমে ইভেন্ট হ্যান্ডলারগুলি সেট করার তুলনায় আমি কেবল আরএক্স এবং পর্যবেক্ষণের বিন্দুটি বুঝতে পারি না।


0

আমি সম্প্রতি জাভাস্ক্রিপ্টের জন্য একটি লিনকিউ লাইব্রেরি তৈরি করেছি। এটি নেট দ্বারা সরবরাহ করা বেশিরভাগ লিনকিউ ফাংশন বাস্তবায়িত করেছে এবং এটি সমস্ত লিনকু লাইব্রেরির মধ্যে দ্রুততম।

http://fromjs.codeplex.com/

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.