随笔 - 432  文章 - 0  评论 - 15  阅读 - 63万

又一神器框架:linq.js

      1、支持jQuery插件的方式。jquery.linq.min.js。

      2、也可以像普通js方法一样使用。linq.min.js。

      3、当然用习惯VS的童鞋肯定希望有个良好的智能感知,是的,它支持。

      4、和C# Linq有很相似的地方,这个就会让你上手起来更快,更让我欢喜的是在linq.js的一些方法中,你可以像写Lambda表达式一样去写过滤条件,而且在过滤字符串中支持$符号【下面上图】。

Linq.js结构图

体验一:查询json对象

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
function TestQueryObjects() {
            var jsonArray = [
                { "StuID": 1, "StuName": "James", "Age": 30, "Country": "USA" },
                { "StuID": 2, "StuName": "Byant", "Age": 36, "Country": "USA" },
                { "StuID": 3, "StuName": "Lin", "Age": 30, "Country": "Taiwan" },
                { "StuID": 4, "StuName": "Yao", "Age": 30, "Country": "Shanghai" }
            ];
  
            var querResult = $.Enumerable.From(jsonArray)
                .Where(function (x) { return x.Age <= 30; })
                .OrderBy(function (x) { return x.StuID; })
                .ToArray()
                .forEach(function (i) {
                    document.write(i.StuID + ";" + i.StuName + ";" + i.Age + ";" + i.Country + "<br/>");
                });
  
            document.write("====================================" + "<br/>");
  
              
            var queryResult2 = $.Enumerable.From(jsonArray)
                .Where("$.Age<=30") //这个操作很牛气
                .OrderBy("$.StuID")
                .ToArray()
                .forEach(function (i) {
                    document.write(i.StuID + ";" + i.StuName + ";" + i.Age + ";" + i.Country + "<br/>");
                });
        }

  上下两个queryResult会得出一样的结果

体验二:Lambda怎么来,Linq.js就怎么来

1
2
3
4
5
6
7
8
9
10
11
12
13
function TestWithLinq() {             // C# Linq
            //Enumerable.Range(1, 10)
            //.Where(delegate(int i) { return i % 3 == 0; })
            //.Select(delegate(int i) { return i * 10; });
              
            Enumerable.Range(1, 10)
                .Where(function (i) { return i % 3 == 0; })
                .Select(function (i) { return i * 10; })
                .ToArray()
                .forEach(function (i) {
                document.write(i + ";"); //30;60;90;
            });
}

  

体验三:去重

1
2
3
4
5
6
7
8
9
function TestDistinct() {
            var arr = [100, 200, 30, 40, 500,200, 40];
            Enumerable.From(arr)
                .Distinct()
                .ToArray()
                .forEach(function(i) {
                    document.write(i + ";"); //100;200;30;40;500;
                });
            }

  

体验四:交集、差集、并集

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
function TestIntersectExcept() {
            var arr1 = [1, 412, 53, 25];
            var arr2 = [53, 25,22,20];
  
            Enumerable.From(arr1).Intersect(arr2).ForEach(function(i) {
                document.write(i + ";"); //53,25
            });
  
            Enumerable.From(arr1).Except(arr2).ForEach(function (i) {
                document.write(i + ";"); // 1;412
            });
  
            Enumerable.From(arr1).Union(arr2).ForEach(function (i) {
                document.write(i + ";"); // 1;412;53;25;22;20;
            });
        }

  

体验五:Alternate、Contains

1
2
3
4
5
6
7
8
function TestAlternate() {
            Enumerable.Range(1, 5).Alternate('*').ForEach(function (i) {
                document.write(i + ";"); //;*;2;*;3;*;4;*;
            });
  
            var r = Enumerable.Range(1, 5).Contains(3);
            document.write(r); //ture
        }

  

体验六:Min、Max

1
2
3
4
5
6
function TestMaxMin() {
            var max = Enumerable.Range(1, 5).Max(); //5
            var min = Enumerable.Range(1, 5).Min(); //1
            document.write(max+";"+min);
  
        }

  

备注:

     github地址:http://linqjs.codeplex.com/

      官方给出 的API和Demo也能很简单:http://neue.cc/reference.htm

posted on   狼来了  阅读(1113)  评论(0编辑  收藏  举报
编辑推荐:
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
阅读排行:
· DeepSeek “源神”启动!「GitHub 热点速览」
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
· DeepSeek R1 简明指南:架构、训练、本地部署及硬件要求
· NetPad:一个.NET开源、跨平台的C#编辑器
历史上的今天:
2015-07-12 require.js的用法
2015-07-12 jQuery的deferred对象详解
2014-07-12 MYSQL 递归操作
2014-07-12 sql with as 用法
2014-07-12 SqlServer里,一条sql进行递归删除
2014-07-12 javascript eval和JSON之间的联系
< 2025年2月 >
26 27 28 29 30 31 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 1
2 3 4 5 6 7 8

点击右上角即可分享
微信分享提示