Saya mencari pustaka JavaScript yang memungkinkan saya menanyakan objek JSON yang kompleks menggunakan sintaks seperti LINQ. Pencarian cepat menemukan beberapa opsi yang menjanjikan yang terlihat mungkin menawarkan apa yang saya butuhkan:
- Apakah ada yang punya pengalaman menggunakannya?
- Apa sajakah pro dan kontra?
- Apakah kinerjanya sebanding?
- Apakah sintaks penerusan fungsi LINQ ke JavaScript menawarkan manfaat tersembunyi (menurut saya pribadi, sintaks jLinq lebih menarik pada pandangan pertama)?
- Apa yang menurut Anda kurang di kedua proyek?
- Apakah Anda pernah mencoba menghubungi penulis? Seberapa tanggap mereka?
- Proyek apa yang lebih banyak digunakan?
Saya pikir ini akan menjadi yang pertama mendapatkan uji coba menyeluruh.
javascript
json
linq
Tom Tresansky
sumber
sumber
filter
,map
, danreduce
fungsi array. Sintaks lambda baru membantu membuat kode terlihat lebih mirip dengan kode LINQ.Linq-Collections
( npmjs.com/package/linq-collections ). Ini menggunakan eksekusi yang ditangguhkan dan banyak pengoptimalan internal untuk menjadi sangat cepat. Berdasarkan standar Microsoft (jika Anda tahu C # Linq maka Anda tahu linq-collections)Jawaban:
Pernahkah Anda melihat Rx untuk Javascript ? Itu yang kamu mau.
sumber
Anda mungkin ingin memeriksa linq.js . Ini mengikuti sintaks lambda .NET dan terlihat terintegrasi dengan baik dalam lingkungan Microsoft.
LINQ untuk JavaScript - http://linqjs.codeplex.com/
Pro
Kontra
sumber
Operator Linq yang paling dasar dan sering digunakan sangat umum didefinisikan di pustaka JS yang banyak digunakan. Mereka hanya punya nama yang berbeda (nyatanya, mereka punya nama yang lebih tradisional daripada di Linq).
Select
menjadimap
,Where
menjadifilter
,First
danFirstOrDefault
menjadi[0]
.Hampir tidak ada perpustakaan yang saya tahu (termasuk saya pikir yang Anda tautkan) repot-repot membuat implementasi malas seperti di .NET Linq, mereka hanya mengevaluasi segera menggunakan array.
Untuk rangkaian operasi daftar fungsional yang sangat bagus dan lengkap, coba: http://osteele.com/sources/javascript/functional/
sumber
a1.filter(function(e) { return a2.indexOf(e) == -1; })
Saya sarankan untuk melihat underscore.js . Ini bukan port LINQ langsung seperti beberapa yang lain, tetapi merupakan pengalaman "seperti LINQ" yang sangat nyaman. Ini mendukung semua opsi filter, urutkan dan proyek yang saya butuhkan dan memiliki dokumentasi yang sangat baik dan dukungan komunitas.
Sebagai bonus untuk pengguna Knockout , ada UnderscoreKO yang menambahkan metode array Underscore ke array yang dapat diamati Knockout. Demo
sumber
Saya pribadi menemukan LINQ / set operasi Union, Intersect, Kecuali dan Distinct pada enumerables di .NET. sangat berguna. Ada plugin jquery yang disebut jQuery Array Utilities yang menyediakan metode ini untuk digunakan pada array.
Contoh kode:
mengembalikan [1,2,3]
mengembalikan [1,2,3,4,5]
kembali [2,3]
mengembalikan [1, 2]
sumber
$ linq: http://jscriptlinq.codeplex.com/
sumber
Ada beberapa pustaka duplikat di luar sana yang mencoba mem-port LINQ ke JavaScript dengan sintaks dan nama metode yang serupa. Namun, dalam komunitas JS, pustaka yang menjadi sangat populer dan menyediakan fungsionalitas yang sama adalah Underscore.js .
sumber
Saya sudah mencoba sebagian besar dari ini - dan saya sangat suka $ linq: http://jscriptlinq.codeplex.com/ yang terbaik. Ini hanya bekerja seperti yang Anda harapkan dari c # linq untuk bekerja - termasuk kemampuan rantai.
sumber
Saya mencari sesuatu seperti ini sendiri dan menemukan ...
http://www.hugoware.net/Projects/jLinq
Ini terlihat sangat bagus! Mungkin saya tidak mengerti maksud Rx dan observable dibandingkan dengan pengaturan event handler melalui sesuatu seperti jQuery.
sumber
Saya baru-baru ini membuat perpustakaan LINQ untuk JavaScript. Ini menerapkan sebagian besar fungsi LINQ yang disediakan oleh .NET dan ini adalah yang tercepat dari semua pustaka LINQ.
http://fromjs.codeplex.com/
sumber