목표 : 객체 배열에 주어진 필드에 대해 주어진 값을 가진 객체가 포함되어 있는지 여부를 결정하는 함수를 작성하십시오. 그러한 오브젝트가있는 경우는 오브젝트를 돌려 주어, 그렇지 않은 경우는 false를 돌려줍니다.자바 스크립트 함수에서 예기치 않은 유형 오류
var data = [
{isle: 'VF', item: 'Ginger'},
{isle: 'VF', item: 'Spinach'},
{isle: 'Dairy', item: 'Milk'},
{isle: 'Dairy', item: 'Yogurt'}
];
var objwithPropvalueInarr = function(propname, propvalue, arr){
for(var i=0; i <= arr.length; i++){
if (arr[i][propname] === propvalue) {
// console.log('Found object with value ' + propvalue);
return arr[i];
}
};
return false;
};
코드는 내가 구글 크롬 콘솔에서 위의 코드를 입력. 함수에 대한 다음 호출이 작동합니다 예상대로
이objwithPropvalueInarr('isle', 'VF', data)
라인 위 data[0]
를 반환합니다.
그러나, 다음의 호출 (호출 후 표시)를 형식 오류
objwithPropvalueInarr('isle', 'nonexistentpropvalue', data)
TypeError: Cannot read property 'isle' of undefined
arguments: Array[2]
get message: function() { [native code] }
get stack: function() { [native code] }
set message: function() { [native code] }
set stack: function() { [native code] }
type: "non_object_property_load"
__proto__: Error
data[0]['isle'] === 'nonexistentpropvalue'
수익률이 예상대로 false
을 반환합니다. 함수의 if
조건이 모든 검사에 대해 false
을 반환하지 않으면 끝에 false
값을 반환해야합니다. 누군가가 오류를 설명 할 수 있으면 고맙겠습니다.
감사합니다.
개발자 도구를 사용하면 StackOverflow에서 요청하는 것보다 훨씬 빨리 이러한 문제를 발견 할 수 있습니다. – Daniil