用函数模板,写一个简单高效的JSON查询器的方法介绍_javascript技巧
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了用函数模板,写一个简单高效的JSON查询器的方法介绍_javascript技巧,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含8006字,纯文字阅读大概需要12分钟。
内容图文
JSON可谓是JavaScript的亮点,它能用优雅简练的代码实现Object和Array的初始化。同样是基于文本的数据定义,它比符号分隔更有语义,比XML更简洁。因此越来越多的JS开发中,使用它作为数据的传输和储存。JS数组内置了不少有用的方法,方便我们对数据的查询和筛选。例如我们有一堆数据:
var heros = [
// 名============攻=====防=======力量====敏捷=====智力====
{name:'冰室女巫', DP:38, AP:1.3, Str:16, Agi:16, Int:21},
{name:'沉默术士', DP:39, AP:1.1, Str:17, Agi:16, Int:21},
{name:'娜迦海妖', DP:51, AP:6.0, Str:21, Agi:21, Int:18},
{name:'赏金猎人', DP:39, AP:4.0, Str:17, Agi:21, Int:16},
{name:'剧毒术士', DP:45, AP:3.1, Str:18, Agi:22, Int:15},
{name:'光之守卫', DP:38, AP:1.1, Str:16, Agi:15, Int:22},
{name:'炼金术士', DP:49, AP:0.6, Str:25, Agi:11, Int:25}
//...
];
要查询攻击大于40并且防御小于4的英雄,我们可以用Array的filter方法:
var match = heros.filter(function(e) {
return e.DP > 40 && e.AP < 4;
});
返回得到一个数组,包括符合条件的2个结果。
相比手工去写循环判断,filter方法为我们提供了很大的方便。但它是基于函数回调的,所以每次使用必须写一个function,对于简单的查询很是累赘,而且使用回调效率也大大降低。但这是也没有办法的,想简单必然要牺牲一定性能。 如果能使用比这更简单的语句,并且完全拥有代码展开时效率,该有是多么完美的事。
先来想象下,要是能将上面的代码写成这样,并且查询速度和手写的遍历判断一样:
var match = heros.select('@DP>40 AND @AP<4');
看上去有点像SQL,连语法都换了?这样岂不是要写一个词法分析,语义解释等等等等一大堆的脚本引擎的功能了,没个几千上万行代码都搞不定,而且效率肯定更糟了。。。如果想到那么复杂,那么你还没深刻的理解脚本的精髓。但凡是脚本语言,都有运行时动态解释代码的接口,例如vbs的execute();js的eval(),new Function(),甚至创建一个
内容总结
以上是互联网集市为您收集整理的用函数模板,写一个简单高效的JSON查询器的方法介绍_javascript技巧全部内容,希望文章能够帮你解决用函数模板,写一个简单高效的JSON查询器的方法介绍_javascript技巧所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。