JavaScript 라이브러리를 위한 최고의 LINQ는 무엇입니까?
LINQ와 같은 구문을 사용하여 복잡한 JSON 개체를 쿼리할 수 있는 JavaScript 라이브러리를 찾고 있습니다.빠른 검색 결과, 내가 필요로 하는 것을 제공할 수 있을 것 같은 몇 가지 유망한 옵션이 발견되었습니다.
- 써본 경험이 있는 사람 있나요?
- 장점과 단점은 무엇인가요?
- 성능은 비교가 안 되나요?
- LINQ에서 JavaScript로의 함수 전달 구문은 숨겨진 이점을 제공합니까(개인적으로는 jLinq 구문이 언뜻 보기에 더 매력적입니다).
- 두 프로젝트 모두 무엇이 부족하다고 생각하시나요?
- 작가들에게 연락해보신 적 있나요?그들은 얼마나 반응했는가?
- 어떤 프로젝트가 더 널리 사용됩니까?
가장 먼저 철저한 테스트를 받을 수 있을 것 같아요.
linq.js를 확인해 보세요.다음에 이어집니다.NET lambda 구문 및 Microsoft 환경에 잘 통합되어 있는 것처럼 보입니다.
자바스크립트용 LINQ - http://linqjs.codeplex.com/
장점
- 모두 실장합니다.NET 4.0 방식
- 게으른 평가를 완료
- Visual Studio에 대한 IntelliSense 풀 지원
- jQuery 지원
- 윈도우즈 스크립트 호스트 지원
- JavaScript(RxJ) 및 IntelliSense Generator용 리액티브 확장 바인딩
- NuGet 설치 지원
- 최근 갱신(2011년 1월 최종 릴리즈)
- 구문은 C#의 람다 구문에 준거합니다.
단점
- linq.js 라이브러리는 조금 큽니다.
- 이미 jQuery 또는 기타 js 라이브러리를 사용하고 있는 경우 가장 일반적으로 사용되는 기능은 이미 사용할 수 있습니다.특히 jQuery의 필터 및 '임의' 메서드를 참조하십시오.
가장 기본적이고 자주 사용되는 Linq 연산자는 널리 사용되는 JS 라이브러리에서 매우 일반적으로 정의됩니다.이름만 다를 뿐입니다(실제로 린크보다 전통적인 이름이 더 많습니다). Select된다map,Where된다filter,First그리고.FirstOrDefault되세요[0].
제가 아는 라이브러리(링크한 라이브러리 포함)는 거의 없습니다( 참조).NET Linq는 어레이를 사용하여 즉시 평가합니다.
기능 리스트의 조작을 완전하게 실시하려면 , http://osteele.com/sources/javascript/functional/ 를 참조해 주세요.
Javascript용 Rx 보셨어요?그게 네가 원하는 거야
언더스코어.js를 볼 것을 권장합니다.다른 포트와 달리 직접 LINQ 포트는 아니지만 매우 편안한 'LINQ와 같은' 경험입니다.필요한 필터, 정렬 및 프로젝트 옵션을 모두 지원하며 문서 및 커뮤니티 지원도 탁월합니다.
Knockout 사용자에게는 Underscore KO가 추가되어 Knockout의 관찰 가능한 어레이에 Underscore의 어레이 메서드가 추가되어 있습니다.데모
LINQ/set 연산 Union, Crossect, Except 및 Distinct는 의 열거형에서 직접 찾을 수 있습니다.NET. 매우 유용합니다.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
유사한 구문과 메서드 이름을 가진 JavaScript에 LINQ를 포트하려는 중복 라이브러리가 있습니다.그러나 JS 커뮤니티에서 큰 인기를 끌면서 동일한 기능을 제공하는 라이브러리는 Underscore.js입니다.
저는 이것들 대부분을 시도해 보았습니다. $linq: http://jscriptlinq.codeplex.com/가 가장 마음에 듭니다.c#linq의 동작은, 체인 기능을 포함해, 간단하게 실행할 수 있습니다.
저도 이런 걸 찾다가 우연히...
http://www.hugoware.net/Projects/jLinq
이거 진짜 맛있어 보여!jQuery를 통해 이벤트 핸들러를 설정하는 것과 비교하면 Rx와 관찰 가능성의 포인트를 이해하지 못할 수도 있습니다.
저는 최근에 자바스크립트용 LINQ 라이브러리를 만들었습니다. 라이브러리를 만들었습니다.에서 제공하는 대부분의 LINQ 기능을 구현했습니다.NET은 모든 LINQ 라이브러리 중 가장 빠릅니다.
언급URL : https://stackoverflow.com/questions/2478038/what-is-the-leading-linq-for-javascript-library
'programing' 카테고리의 다른 글
| 날짜 개체를 사용하는 구성 요소는 시간대별로 서로 다른 스냅샷을 생성합니다. (0) | 2023.03.01 |
|---|---|
| ACF 관계 필드 - 다른 포스트 유형의 get_field 값 (0) | 2023.03.01 |
| 알 수 없는 속성 이름을 가진 JSON 스키마 (0) | 2023.03.01 |
| 리액트의 카운트다운 타이머 (0) | 2023.03.01 |
| 가져오지 않고 JSX를 사용하여 반응에서 이미지 표시 (0) | 2023.03.01 |