Javascript做模糊查询-数组无双(二)-完美的调用筑造最后的成功
2012-08-11 23:58
253 查看
一、前言
上一章我们提到了高性能的循环,那么那个函数到底在哪里调用呢?它又代表什么呢?现在让我为大家解分析。当然这也是履行上次我的诚诺,因此必须认真点。好了,话不多说,把大脑运转起来,我要开始讲解了!!上一章的网站地址:/article/1486868.html
二、讲解
首先看看上次解析代码,毕竟温故而知新:var vData= ["name", "sex", "age", "job", "e-mail"]; function find(sFind, sObj) { var nSize = sFind.length; var nLen = sObj.length; var sCompare; if(nSize <= nLen ){ for(var i = 0; i <= nLen - nSize + 1; i++){ sCompare = sObj.substring(i, i + nSize); if(sCompare == sFind){ return i; } } } return -1; }
上次我说过了,这里运用比较好的就是循环,那么没有好的调用平台,即使循环再好也没有用武之地,就像孔明到了袁绍那样不听劝告的君主手里。所以我要把调用的函数好好讲讲,看下面的代码:
function findEach() { var sFind = document.getElementById("input").value; if(sFind==""){ alert("Can not be empty."); } if(sFind!=""){ var nPos; var vResult = []; //for(var i = 0; i <= vData.length; i++){ for(var i in vData){ var sTxt=vData[i]||''; nPos = find(sFind, sTxt); //nPos=sTxt.indexOf(sFind); if(nPos>=0){ vResult[vResult.length] = sTxt; } } alert(vResult); } }
这就是调用函数。看我一字一句的分析在下:
var sFind = document.getElementById("input").value;
这句谁都懂,就是取元素的值,也就是取要你找的那个字符的值。
在html中的对应代码为:
<input id="input" type="text" value="" />
然后看js代码中的代码:
if(sFind==""){ alert("Can not be empty."); }
这段是在讲不允许要找的那个字符为空字符。当然这都很简单。再看代码:
if(sFind!=""){ var nPos; var vResult = []; //for(var i = 0; i <= vData.length; i++){ for(var i in vData){ var sTxt=vData[i]||''; nPos = find(sFind, sTxt); //nPos=sTxt.indexOf(sFind); if(nPos>=0){ vResult[vResult.length] = sTxt; } } alert(vResult); }
这就在调用函数,当然要在调用前加个条件:要找的那个字符为空字符不能为空字符,然后进行循环。在循环里,我用了for(...in...)的语句,目的是为了遍历数组。然后看下面的代码:
var sTxt=vData[i]||'';
这是一句防御性编程语句,因为要保证取回的一定是个字符或字符串。(var = xxx || ' '代表如果前面不满足就做||后面的。)然后调用前面的find()函数,并给参数赋值,参数sFind赋值为这里定义的变量sFind(也就是要找的那个字符),参数sObj赋值为sTxt,也就是取数组vData(定义的全局变量,文章前面写的代码里有。)中下标为i的值
。然后把调用的函数赋值给变量nPos。然后判断nPos是否大于0,如果大于就以数组长度为下标取数组的值,并赋值给sTxt。
说明运行成功。那么假设没有找到,函数find()返回-1,就不满足条件,于是就不运行后面代码。
下一章我会公布全部代码和自己的编程体会,敬请期待。
----------------------------------------------------------------
欢迎大家转载我的文章。
转载请注明:转自Yorhom's Game Box
欢迎继续关注我的博客
相关文章推荐
- Javascript做模糊查询-数组无双(二)-完美的调用筑造最后的成功
- Javascript做模糊查询-数组无双(三)-最终代码
- Javascript做模糊查询-数组无双(三)-最终代码
- Javascript做模糊查询-数组无双(一)-循环不能不重视
- Javascript做模糊查询-数组无双(一)-循环不能不重视
- Javascript做模糊查询-数组无双(一)-循环不能不重视
- javascript模糊查询一个数组
- Javascript做模糊查询
- JAVASCRIPT调用OCX获取字符串数组参数
- axis WebServices 完美调用天气预报,查询、显示 代码!
- axis WebServices 完美调用天气预报,查询、显示 代码!
- JavaScript基础 使用for循环遍历数组 并 查询 数组中是否存在指定的值
- JavaScript根据Json数据来做的模糊查询功能
- JQuery.UI类库AutoComplete 调用WebService进行模糊查询
- Javascript根据变量来动态查询数组或Json的数据
- 高德地图模糊查询---JavaScript API
- 在JavaWEB中将Ajax动态查询结果转换成List<Map>型JavaScript数组
- 在JavaScript的Array数组中调用一组Function方法
- php 数组模糊查询
- Jquery如何序列化form表单数据为JSON对象 C# ADO.NET中设置Like模糊查询的参数 从客户端出现小于等于公式符号引发检测到有潜在危险的Request.Form 值 jquery调用iframe里面的方法 Js根据Ip地址自动判断是哪个城市 【我们一起写框架】MVVM的WPF框架(三)—数据控件 设计模式之简单工厂模式(C#语言描述)