私は以前の質問Javascript understanding returnを更新したいと思っています。下のコードは以前のものと非常に似ていますが、その質問は既に回答済みですので、これを投稿することにしました。JavaScriptの復帰方法
function positionIdentifier(name, nameArray) {
var namePosition;
for (i = 0; i < nameArray.length; i++) {
if (nameArray[i] == name) {
namePosition = function() {
alert("Your name is in position number " + (i + 1));
}
}
}
return namePosition;
}
name1Array = ["look", "sky", "walk", "kier"];
positionIdentifier("walk", name1Array)();
は、なぜそれが間違った位置(i + 1)警告ん、私の以前の質問のコードはすでに正常に動作しますが、私は私の好奇心のいくつかは、私は、コードを実験し、リターンnamePositionを動かし満足したいですか?代わりに、配列の長さである最終位置を警告します。
機能たらreturnが実行され、変数 'i'は配列の長さになります。これは複製であるため、ここでクロージャを参照してください。 Ps:ここに表示されている関数はすでに存在しています: 'name1Array.indexOf( 'walk')+1 ' – Shilly