又一神器框架: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
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题: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之间的联系