developer tip

최고의 JavaScript 용 LINQ 라이브러리는 무엇입니까?

optionbox 2020. 8. 27. 07:42
반응형

최고의 JavaScript 용 LINQ 라이브러리는 무엇입니까? [닫은]


LINQ와 유사한 구문을 사용하여 복잡한 JSON 개체를 쿼리 할 수있는 JavaScript 라이브러리를 찾고 있습니다. 빠른 검색을 통해 내가 필요한 것을 제공 할 수있는 몇 가지 유망한 옵션을 찾았습니다.

LINQ to JavaScriptjLinq

  • 누구든지 그것들을 사용한 경험이 있습니까?
  • 장단점은 무엇입니까?
  • 성능이 비슷합니까?
  • LINQ to JavaScript의 함수 전달 구문이 숨겨진 이점을 제공합니까 (개인적으로 jLinq의 구문이 언뜻보기에 더 매력적이라고 ​​생각합니다)?
  • 두 프로젝트에서 부족한 점은 무엇입니까?
  • 저자에게 연락해 본 적이 있습니까? 그들은 얼마나 반응 했습니까?
  • 어떤 프로젝트가 더 널리 사용됩니까?

편집하다:

오늘 이것을 보았습니다 : jslinq .

철저한 트라이 아웃을하는 것이 처음이라고 생각합니다.


Rx for Javascript를 보셨나요 ? 그것이 당신이 원하는 것입니다.


linq.js 를 확인하는 것이 좋습니다 . .NET 람다 구문을 따르며 Microsoft 환경에 잘 통합 된 것으로 보입니다.

JavaScript 용 LINQ- http : //linqjs.codeplex.com/

장점

  • 모든 .NET 4.0 메서드 구현
  • 완전한 게으른 평가
  • VisualStudio에 대한 완전한 IntelliSense 지원
  • jQuery 지원
  • Windows 스크립트 호스트 지원
  • JavaScript (RxJS) 및 IntelliSense 생성기에 대한 반응 확장에 대한 바인딩
  • NuGet 설치 지원
  • 최근 업데이트 (2011 년 1 월 마지막 릴리스)
  • 구문은 C #의 람다 구문을 따릅니다.

단점

  • linq.js 라이브러리는 약간 큽니다.
  • 이미 jQuery 또는 기타 js 라이브러리를 사용하고 있다면 가장 일반적으로 사용되는 기능을 이미 사용할 수 있습니다. 특히 jQuery의 filter 및 'Any'메소드를 참조하십시오 .

가장 기본적이고 자주 사용되는 Linq 연산자는 널리 사용되는 JS 라이브러리에서 매우 일반적으로 정의됩니다. 그들은 단지 다른 이름을 가지고 있습니다 (사실 그들은 Linq보다 전통적인 이름을 가지고 있습니다). Select된다 map, Where된다 filter, First그리고 FirstOrDefault이 될 [0].

내가 아는 라이브러리 (연결 한 라이브러리 포함)는 .NET Linq 에서처럼 구현을 게으르게 만드는 것을 귀찮게하지 않으며 배열을 사용하여 즉시 평가합니다.

매우 훌륭하고 완전한 기능 목록 작업 세트를 보려면 http://osteele.com/sources/javascript/functional/을 시도하십시오.


underscore.js 살펴보기를 권장 합니다 . 다른 일부와 같은 직접적인 LINQ 포트는 아니지만 매우 편안한 "LINQ와 유사한"경험입니다. 필요한 모든 필터, 정렬 및 프로젝트 옵션을 지원하며 우수한 문서 및 커뮤니티 지원을 제공합니다.

에 대한 보너스로 녹아웃 사용자가 UnderscoreKO 마네의 관찰 배열에 밑줄의 배열 방법을 추가합니다. 데모


개인적으로 .NET의 열거 형에서 LINQ / set 작업 Union, Intersect, Except 및 Distinct를 찾습니다. 굉장히 유용하다. 배열에서 사용할 이러한 메소드를 제공하는 jQuery Array Utilities 라는 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: 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

There are some duplicating libraries out there that try to port LINQ to JavaScript with a similar syntax and method names. However, in the JS community, the library that is getting really popular and providing the same functionality is Underscore.js.


I've tried out most of these -- and I really like $linq: http://jscriptlinq.codeplex.com/ the best. It simply works the way you would expect c# linq to work -- including the chain ability.


I'm looking for something like this myself and came across...

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

This looks really great! Maybe I just don't understand the point of Rx and observables compared to setting event handlers through something like jQuery.


I recently made a LINQ library for JavaScript. It implemented most LINQ functions provided by .NET and it is the fastest of all the LINQ libraries.

http://fromjs.codeplex.com/

참고URL : https://stackoverflow.com/questions/2478038/what-is-the-leading-linq-for-javascript-library

반응형