博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
linq.js
阅读量:5084 次
发布时间:2019-06-13

本文共 2586 字,大约阅读时间需要 8 分钟。

今天在项目里发现一个类似于linq的写法,上网百度了一下发现是linq.js,感觉还挺有用的,于是把这个文章转载过来与大家分享,也让自己学习。

内容:

    在做后台开发的时候,总是会碰到将拿到手的数据进行条件校验,而这些数据又不仅仅是单纯的一个,有时候会是一串大数据,需要自己在后台处理进而展示到前台页面上,酱紫自己第一反应就是使用for循环来遍历,并把所需的数据放在相应的地方。可是导致的后果却是再审视后台的代码时,那么多那么多重复的代码,我可以把对同一个dom节点的遍历写两遍,于是我就被同事大神给嘲笑了,不过幸好,他后来教了我一个“神武器”——linq.js,一个专门解决我遇到的问题的神器。

    linq,全称为Language Integrated Query,通过构建快速查询语句,可快速从数据库或集合中筛选数据集、以查询数据库相同的方式操作内存数据。最主要的使用它是来对集合进行各种操作,比如:去重,去空,省略了以往拿for遍历判断取值的麻烦性。话不多说,奉上小小经验:

   linq.js相当于是一个前端框架吧,因此使用起来也只是在页面上引入它的js文件而已,或者在thinkjs项目中使用的时候,npm一下linq.js包就好了。这里使用的是express项目:

   

var express = require('express');var linq = require('linq');var router = express.Router();/* GET home page. */router.get('/', function(req, res, next) {  var myList = [    { Name: "Jim", Age: 20,type:1 },    { Name: "Kate", Age: 20 ,type:2},    { Name: "Lilei", Age: 18,type:1 },    { Name: "John", Age: 14,type:2 },    { Name: "LinTao", Age: 25,type:1 }  ];  // var arrRes = linq.from(myList).where("x=>x.Name=='John'").toArray();//条件查询    [{"Name":"John","Age":14,"type":2}]  //var arrRes = linq.from(myList).select("x=>x.Age*10").toArray();//条件选择          [200,200,180,140,250]  //var arrRes = linq.from(myList).orderBy("x=>x.Age").toArray();//排序[{"Name":"John","Age":14,"type":2},{"Name":"Lilei","Age":18,"type":1},{"Name":"Jim","Age":20,"type":1},{"Name":"Kate","Age":20,"type":2},{"Name":"LinTao","Age":25,"type":1}]  var arrRes = linq.from(myList).distinct("x=>x.Age").where("y=>y.type=='2'").toArray();//去重  言外之意是:去重之后再搜索   [{"Name":"John","Age":14,"type":2}]  //var arrRes = linq.from(myList).forEach(function (value, index) {//循环  //    console.log('value:'+value.Name+' =======index : '+index)  //});  //var arrRes = linq.from(myList).firstOrDefault('x=>x.Age>18');//取唯一对象:First、FirstOrDefault、Last、LastOrDefault、Single、SingleOrDefault   {"Name":"Jim","Age":20,"type":1}  //var arrRes=linq.range(1,10).skip(5).toArray();//结果[6,7,8,9,10]  //var arrRes=linq.range(1,10).take(5).toArray();//结果[1,2,3,4,5]  // var array1 = [1,412,5,3,5,412,7];  // var array2 = [20,12,5,5,7,310];  //var arrRes=linq.from(array1).except(array2).toArray();//结果3,412,1 差集  //var arrRes=linq.from(array1).intersect(array2).toArray();//结果5,7  交集  //var arrRes=linq.from(array1).union(array2).toArray();//结果是两个结果集里面所有值,并自动去重  //var arrRes=linq.range(1,10).where('x=>x%2==0').toArray();  // res.render('index', { title: JSON.stringify(arrRes) });  // var arr1=["2","",""];  // var arrRes=linq.from(arr1).where("x=>x==''").toArray();  console.log("=============="+JSON.stringify(arrRes));});module.exports = router;

 

转载于:https://www.cnblogs.com/yanglang/p/6767492.html

你可能感兴趣的文章
轻松搞懂Python的属性和方法
查看>>
JVM内存状况查看方法和分析工具
查看>>
关于判断物体是否在视野范围内
查看>>
Android应用开发中模拟按HOME键效果
查看>>
Python:ModuleNotFoundError: No module named 'windows'
查看>>
Linq查询
查看>>
json_encode charset
查看>>
jquery api
查看>>
C#compiler
查看>>
machine%20learning
查看>>
JSON 简单例子
查看>>
UCOS 中的中断处理
查看>>
异步编程设计模式Demo - PrimeNumberCalculator
查看>>
第三次作业-结对编程
查看>>
Python全栈开发——线程与进程(进程)
查看>>
mysql数据导出乱码
查看>>
Ryzom相关的项目简介
查看>>
新版.Net开发必备十大工具(转)
查看>>
noi.ac NA531 【神树和物品】
查看>>
冒泡排序
查看>>