Javascriptはあいまいな照会をします.第二章の完璧な呼び出しは建築の最後の成功を築きます.

3593 ワード

前言
前の章では、高性能サイクルについて述べましたが、その関数はどこで呼び出されますか?何を表していますか?今は皆さんのために分析させていただきます.もちろんこれも前回の私の誠諾を履行するので、必ずまじめにしなければなりません.はい、話は多くなくて、脳を動かして、説明を始めます.
 
説明する
まず前回の解析コードを見てみます.結局温故知新です.
 
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;
}
前にも話しましたが、ここのほうがいいのは循環です.
 
 
Javascriptはあいまいなクエリを行います。第一章の高性能サイクルは全体の効率をもたらします。の中に具体的な説明があります.前の章を見たらこの文章が分かります.
)というように、良い呼び込みの場がないので、いくら循環しても腕を振るう場所がないです.孔明が袁紹に来たように、忠告を聞かない君主の手の中にあります.ですから、呼び出された関数をよく説明します.下のコードを見てください.
 
 
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(つまり、 している )とします.パラメータsObjはsTxtとして り てられています.つまり、 vData(グローバル として されています. の が かれています.) び した を nPosに り てます.nPosが0より きいかどうかを し、 きい は を きとして の を り、sTxtに を えます.
 
を します. find()は-1に ると が たされなくなりますので、 のコードは されません.
(ヒント: の を てこそ、この が めます.でないと、あなたは できないかもしれません.)
の は のコードと のプログラミング を します. してください.