日期:2014-05-16 浏览次数:20497 次
前言
上一章我们提到了高性能的循环,那么那个函数到底在哪里调用呢?它又代表什么呢?现在让我为大家解分析。当然这也是履行上次我的诚诺,因此必须认真点。好了,话不多说,把大脑运转起来,我要开始讲解了!!
讲解
首先看看上次解析代码,毕竟温故而知新:
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代码中的代码: