プログラミング初学者です。
console.logに入力された配列の中の一番長いインストラクターの名前を取得する問題です。
答えは以下のコードだったのですが、なぜ let longestNameIndex = 0;が必要なのかわかりません。でもこれがないと答えが違ってきます。どなたか教えていただけますでしょうか。
よろしくお願いします。
const instructorWithLongestName = function (instructors) { let longestName = 0; let longestNameIndex = 0; for (let i = 0; i < instructors.length; i++) { if (longestName < instructors[i].name.length) { longestName = instructors[i].name.length; longestNameIndex = i; } } return instructors[longestNameIndex]; }; console.log(instructorWithLongestName([ { name: "Samuel", course: "iOS" }, { name: "Jeremiah", course: "Web" }, { name: "Ophilia", course: "Web" }, { name: "Donald", course: "Web" } ])); console.log(instructorWithLongestName([ { name: "Matthew", course: "Web" }, { name: "David", course: "iOS" }, { name: "Domascus", course: "Web" } ]));
let longestNameIndex = 0; がある場合コンソールには、
{ name: "Jeremiah", course: "Web" }
{ name: "Domascus", course: "Web" }
が返ってきます。
でも、let longestNameIndex = 0;がない下記のコードの場合コンソールには、
{ name: "Donald", course: "Web" }
{ name: "Domascus", course: "Web" }
が返ってきます。
どうして下記のコードでは、
{ name: "Jeremiah", course: "Web" }
{ name: "Domascus", course: "Web" }
が返ってこないのでしょうか?
const instructorWithLongestName = function (instructors) { let longestName = ""; for (let i = 0; i < instructors.length; i++) { if (longestName.length < instructors[i].name.length) { longestName = instructors[i]; } } return longestName; };
回答3件
あなたの回答
tips
プレビュー