linq.js的用法
linq.js 详细介绍
linq.js 是一个 JavaScript 实现的 LINQ。
主要特性:
实现所有 .NET 4.0 的方法
complete lazy evaluation
full IntelliSense support for VisualStudio
two versions - linq.js and jquery.linq.js (jQuery plugin)
support Windows Script Host
binding for Reactive Extensions for JavaScript(RxJS) and IntelliSense Generator -> see documentation
NuGet install support
示例代码:
var jsonArray = [
{ "user": { "id": 100, "screen_name": "d_linq" }, "text": "to objects" },
{ "user": { "id": 130, "screen_name": "c_bill" }, "text": "g" },
{ "user": { "id": 155, "screen_name": "b_mskk" }, "text": "kabushiki kaisha" },
{ "user": { "id": 301, "screen_name": "a_xbox" }, "text": "halo reach" }
]
// ["b_mskk:kabushiki kaisha", "c_bill:g", "d_linq:to objects"]
var queryResult = Enumerable.From(jsonArray)
.Where(function (x) { return x.user.id < 200 })
.OrderBy(function (x) { return x.user.screen_name })
.Select(function (x) { return x.user.screen_name + ':' + x.text })
.ToArray();
// shortcut! string lambda selector
var queryResult2 = Enumerable.From(jsonArray)
.Where("$.user.id < 200")
.OrderBy("$www.cnzhaotai.com/ .user.screen_name")
.Select("$.user.screen_name + ':' + $.text")
.ToArray();
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////
用途:方便js操作查询json数据。
下载网址:http://jslinq.codeplex.com/
使用方法:只需要引用linq.js即可。
查询方法:
一、where查询
var myList = [
{ Name: "Jim", www.wanmeiyuele.cn Age: 20 },
{ Name: "Kate", www.leyouzaixan.cn Age: 21 },
{ Name: "Lilei", Age: 18 },
{ Name: "John", Age: 14 },
{ Name: "LinTao", www.yszx11.cn/ Age: 25 }
];
var arrRes = Enumerable.From(myList).Where("x=>x.Name=='Jim'").ToArray();
二、排序:OrderBy
var myList = [
{ Name: "Jim",www.baohuayule.com Age: 20 },
{ Name: "Kate", Age: 21 },
{ Name: "Lilei",www.baohuayule.cn Age: 18 },
{ Name: "John", Age: 14 },
{ Name: "LinTao",www.006665.cn Age: 25 }
];
var arrRes = Enumerable.From(myList).OrderBy("x=>x.Age").ToArray();//降序OrderByDescending()
三、去重:Distinct
var myList = [
{ Name: "Jim", Age: 20 },
{ Name: "Kate", Age: 20 },
{ Name: "Lilei", Age: 20 },
{ Name: "John", Age: 14 },
{ Name: "LinTao", Age: 25 }
];
var arrRes = Enumerable.From(myList).Distinct("x=>x.Age").ToArray();
四、遍历:ForEach
var myList = [
{ Name: "Jim", Age: 20 },
{ Name: "Kate", Age: 20 },
{ Name: "Lilei", Age: 20 },
{ Name: "John", Age: 14 },
{ Name: "LinTao", Age: 25 }
];
Enumerable.From(myList).ForEach(function(value, index){
document.write("值="+value+",索引="+index);
});
五、取唯一对象:First、FirstOrDefault、Last、LastOrDefault、Single、SingleOrDefault
var myList = [
{ Name: "Jim", Age: 20 },
{ Name: "Kate", Age: 20 },
{ Name: "Lilei", Age: 20 },
{ Name: "John", Age: 14 },
{ Name: "LinTao", Age: 25 }
];
var arrRes = Enumerable.From(myList).FirstOrDefault("x=>x.Age>18");
六、Skip、Take
Enumerable.Range(1,10).Skip(5)//结果[6,7,8,9,10]
Enumerable.Range(1,10).Take(5)//结果[1,2,3,4,5]
linq.js的用法的更多相关文章
- Javascript模块化编程(三):require.js的用法
Javascript模块化编程(三):require.js的用法 原文地址:http://www.ruanyifeng.com/blog/2012/11/require_js.html 作者: 阮一峰 ...
- 【JavaScript】又一神器框架:linq.js
引言 前几天针对一个js数组交集的问题请教了下同事,他第一反应就是循环,这也是常规思路,因为我个人更倾向于js些,我便开玩笑,不知道js能不能像linq那样实现这些操作呢?果断百度了一把,果然有现成框 ...
- JS 正则表达式用法
JS 正则表达式用法简介 简单的说,正则表达式是一种可以用于模式匹配和替换的强有力的工具.其作用如下: 测试字符串的某个模式.例如,可以对一个输入字符串进行测试,看在该字符串是否存在一个电话号码模式或 ...
- linq.js
在做后台开发的时候,总是会碰到将拿到手的数据进行条件校验,而这些数据又不仅仅是单纯的一个,有时候会是一串大数据,需要自己在后台处理进而展示到前台页面上,酱紫自己第一反应就是使用for循环来遍历,并把所 ...
- toastr.js插件用法
toastr.js插件用法 toastr.js是一个基于jQuery的非阻塞通知的JavaScript库.toastr.js可以设定四种通知模式:成功.出错.警告.提示.提示窗口的位置.动画效果等都可 ...
- Js相关用法个人总结
Js相关用法个人总结 js中将数组元素添加到对象中var obj = {}; var pushArr = [11,22,33,44,55,66]; for(var i=0;i<pushArr. ...
- jQuery each和js forEach用法比较
本文实例分析了jQuery each和js forEach用法.分享给大家供大家参考,具体如下: 对于遍历数组的元素,js代码和jquery都有类似的方法,js用的是forEach而jquery用的是 ...
- 查询Array中确定数值的对象&JS linq使用 = linq.js
var x=new Array(); x.push({"a":3,"b":3},{"a":2,"b":2},{" ...
- 数组插件----linq.js
优点 1.支持jQuery插件的方式.jquery.linq.min.js. 2.也可以像普通js方法一样使用.linq.min.js. 3.当然用习惯VS的童鞋肯定希望有个良好的智能感知,是的,它支 ...
随机推荐
- Apache Struts最新漏洞 远程代码执行漏洞预警 2018年11月08日
2018年11月8日,SINE安全监控检测中心,检测到Apache Struts官方更新了一个Struts漏洞补丁,这个漏洞是Apache Struts目前最新的漏洞,影响范围较广,低于Apache ...
- 学习CSS
CSS教程 菜鸟教程 通过使用CSS我们可以大大提升网页开发的工作效率 什么是CSS? CSS指层叠样式表(Cascading Style Sheets) 样式定义如何显示HTML元素 样式通常存储在 ...
- Android面试收集录 对话框、信息提示和菜单
1.如何使用AlertDialog显示一个列表? 使用AlertDialog.Builder.setItems方法. 在setItems中定义DialogInterface.OnClickListen ...
- 基于Ubuntu Server 16.04 LTS版本安装和部署Django之(四):安装MySQL数据库
基于Ubuntu Server 16.04 LTS版本安装和部署Django之(一):安装Python3-pip和Django 基于Ubuntu Server 16.04 LTS版本安装和部署Djan ...
- LeetCode:22. Generate Parentheses(Medium)
1. 原题链接 https://leetcode.com/problems/generate-parentheses/description/ 2. 题目要求 给出一个正整数n,请求出由n对合法的圆括 ...
- 配置ORACLE的PRO*C环境
1.访问数据库的方法 在ORACLE数据库管理和系统中,有三种访问数据库的方法: ⑴.用SQL*Plus, 它有SQL命令以交互的应用程序访问数据库: ⑵.用第四代语言应用开发工具开 ...
- Mysql数据库的压力
rationalError: (2006, 'MySQL server has gone away') 2017年10月10日 20:04:43 阅读数:377 问题描述 使用django+celer ...
- 【面试题】2018年最全Java面试通关秘籍第五套!
[面试题]2018年最全Java面试通关秘籍第五套! 原创 2018-04-26 徐刘根 Java后端技术 第一套:<2018年最全Java面试通关秘籍第一套!> 第二套:<2018 ...
- error LNK2001: unresolved external symbol "public: __thiscall ControllerInterface::ControllerInterface(class QObject *)" (??0ControllerInterface@@QAE@PAVQObject@@@Z) downloadcontroller.obj
前几天刚遇到这个问题,但是今天再碰到就又要思考怎么解决.这次特别记录一下,以防下次碰到再手足无措: 1.看到这个报错第一感觉LNK关键字,表示连接错误,这种错误有几个可以下手的点 1)函数声明和定义是 ...
- 初探 Qt Opengl【2】
最近在研究QOPengl QGraphicsView QGraphicsItemQGraphicsScene不过也只是皮毛,也不是做什么技术贴,就是记录一下自己在其中遇到的问题,和自己新学到的东西. ...