jQuery 선택기를 인수로 사용하고 year 값을 함수에 전달하여 select (jQuery 선택기 인수)의 모든 값 배열에 대해 값을 테스트합니다. 옵션 값 중 하나라도 "value"인수와 같으면 항상 부울을 반환해야하지만 항상 정의되지 않은 값을 반환해야합니다.jQuery를 사용하여 부울 값을 비교하는 방법 map()
function checkOptions(selector, prop) {
var options = selector.children('option');
var selectorValues = $.map(options, function(option) {
if(option.value == prop){
return !!(option.value == prop);
}
});
}
제안 사항을 반영하도록 원래 코드를 변경 한 후에도 함수는 여전히 "정의되지 않음"을 반환합니다. 나는 그 소품하기 위해 "해"통과하고 있기 때문에 옵션의 값 중 하나입니다,
이selectorValues = [false, false, true, false, false]
이 말이 :
function checkOptions(selector, prop) {
var result;
var options = selector.children('option');
var selectorValues = $.map(options, function(option) {
return option.value == prop;
});
}
변수 "selectorValues"
는 런타임에 이러한 값을 보유 선택의.
아마도 'if'조건이 결코 통과되지 않을 것이므로 'return'에 도달하지 않을 것이므로'undefined '만 얻을 수 있습니다. 만약 당신이 단지 모든 불리언 값을 반환하고 싶다면'if'를 제거 할 수 있습니다. 체크가 이미 부울 인 – vlaz
@vlaz를 리턴하므로'!!'를 제거 할 수 있습니다. 모든 반환 값이 정의되지 않은 경우 빈 배열을 반환하지 않아야합니까? – valarauko
@valarauko 아니, 왜 그렇게 생각하니? '.map' 기능은 당연히 하나의 값에서 _mapping_을 다른 것으로 제공합니다. 따라서 N 값을 포함하는 배열은 매핑을 따르는 N 값을 포함하는 새로운 배열을 생성합니다. 즉'[1, 2, 3]'으로 시작하고 매핑이'x * 2 '이면 각 값에 대해 실행되고 새로운 배열은'[2, 4, 6]'이됩니다. 빈 배열을 만들 수는 없지만 항상 1 : 1입니다. 당신은 아마도'.filter'를 생각할 것입니다.이 필터는 술어를 사용하고 그것을 전달하는 모든 것을 돌려줍니다. – vlaz