이 코드의 잘못된 점은 무엇입니까? 내가 얻을 :정의되지 않은 변수와 관련된 오류
형식 오류 : 나이가 처음에 정의되어
하지만 나이가 정의되지 않은
(범위 3 중 10)이다 var older = people[0]
function person(name, age) {
this.name=name;
this.age=age
}
function foo() {
var older10 = function(people) {
var older = people[0];
for (var index = 1; index < 10; index++) {
if (people[index].age > older.age) {
older = people[index]; // error here
}
}
return older;
};
var array = [];
array[1] = new person("Paul", 23);
array[2] = new person("Jim", 24);
array[3] = new person("Sam", 84);
array[4] = new person("Rob", 54);
array[8] = new person("Karl", 19);
array[9] = new person("", 0);
var older = older10(array);
if (older.name === "Sam") {
console.log("ok");
}
}
'people [0]'('array [0]')을 정의하지 않기 때문에'var older = people [0];'는'undefined'를'older'에 할당하고'old.age'는 실패합니다. 이와 같이 인덱스, 길이 ('index <10')를 하드 코딩하지 마십시오. 항목을 원하는 순서대로 배열에 추가하고 배열을 반복합니다. 'people.length'로 현재 길이를 얻습니다. 배열에 대해 더 자세히 읽어보십시오. https://developer.mozilla.org/en/JavaScript/Guide/Predefined_Core_Objects#Array_Object –
'여기 // 오류가 있습니다.'는 잘못된 위치에 있습니다. 실제로는 위의 행 (조건 인 경우)이 원인입니다 그것은'old.age'에 대한 호출입니다. – Arth