최고의 JavaScript 용 LINQ 라이브러리는 무엇입니까? [닫은]
LINQ와 유사한 구문을 사용하여 복잡한 JSON 개체를 쿼리 할 수있는 JavaScript 라이브러리를 찾고 있습니다. 빠른 검색을 통해 내가 필요한 것을 제공 할 수있는 몇 가지 유망한 옵션을 찾았습니다.
- 누구든지 그것들을 사용한 경험이 있습니까?
- 장단점은 무엇입니까?
- 성능이 비슷합니까?
- 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.
참고URL : https://stackoverflow.com/questions/2478038/what-is-the-leading-linq-for-javascript-library
'developer tip' 카테고리의 다른 글
비 활동 클래스에서 컨텍스트 가져 오기 (0) | 2020.08.27 |
---|---|
뷰에서 프로그래밍 방식으로 스타일 속성을 설정하는 방법 (0) | 2020.08.27 |
일반적인 실패한 요청 (오류 아님)에 대한 적절한 HTTP 상태 코드 응답은 무엇입니까? (0) | 2020.08.27 |
virtualenv는 어디에서 만들어야합니까? (0) | 2020.08.27 |
트위터 부트 스트랩 내비게이션 바의“아이콘 바” (0) | 2020.08.27 |