내 코드에서 테스트를 실행합니다. 함수에 전달 된 속성이 존재하지 않으면 0을 반환해야합니다. 그러나 아무것도 돌려주지 않는 것. 오타를 만들었나요? 이 전달 된 객체의 length
얻을하려고 할 때 그 처음 테스트 방법이 될해서는 안개체 속성이없는 경우 반환 값
var obj = {
key: [1, 2, 3]
};
function getAverageOfElementsAtProperty(obj, key) {
if (obj[key].length === 0 || Array.isArray(obj[key]) === false || obj.hasOwnProperty(key) === false) {
return 0;
}
var average = 0;
for (var i = 0; i < obj[key].length; i++) {
average += obj[key][i];
}
average /= obj[key].length;
return average;
}
console.log(getAverageOfElementsAtProperty(obj, 'notKey'));
아마 적어도 일시적으로 함수에서 런타임 오류를 잡아 두어야합니다. 일치하는 키로도 0 오류로 나눗셈이 가능합니까? (또한, 조건문에서 ===에 대해 미친 것은 아닙니다.) – codemaker
수표의 순서는 반대입니다. 'hasOwnProperty'가 먼저오고, 그 다음에 isArray와 length가 있어야합니다 – Slai