Javascript 为什么它无法匹配?
为什么它无法匹配Javascript 为什么它无法匹配?,javascript,jquery,Javascript,Jquery,为什么它无法匹配 var d = $('#bstudylevel').val(); // Bachelor var g = $('#bfrench').val(); // Moedertaal var h = $('#bnederlands').val(); // Moedertaal switch(selected_language) { //NL case 'NL': if( ((d!=='Bachelor') || (d!=='Master') ||
var d = $('#bstudylevel').val(); // Bachelor
var g = $('#bfrench').val(); // Moedertaal
var h = $('#bnederlands').val(); // Moedertaal
switch(selected_language) { //NL
case 'NL':
if( ((d!=='Bachelor') || (d!=='Master') || (d!=='Doctoraat') ) &&
((g!=='Moedertaal') || (g!=='Zeer Goed') ) &&
((h!=='Moedertaal') || (h!=='Zeer Goed') )
) {
console.log("You do not match the requirement: ", d, g, h);
return false;
}
break;
case 'FR':
if( ((d!=='Bachelier') || (d!=='Master') || (d!=='Doctorat') ) &&
((g!=='Très bon') || (g!=='Bon') ) &&
((h!=='Très bon') || (h!=='Zeer Goed') )
) {
console.log("You do not match the requirement: ", d, g, h);
return false;
}
break;
}
console.log('Expected output is this..., not above');
输出:
您不符合以下任何表达式中的要求:学士学位Moedertaal Moedertaal
((d!=='Bachelier') || (d!=='Master') || (d!=='Doctorat') )
考虑d
只能有一个值。因此,无论d
是什么,它都不等于这些字符串之一。它可能不是它们中的任何一个,也可能是其中的一个,但不会全部是三个
因此,该值将始终为
true
,因为在代码d
中始终有一个值为true:
if (((d !== 'Bachelor') || (d !== 'Master') || (d !== 'Doctoraat')) && ((g !== 'Moedertaal') || (g !== 'Zeer Goed')) && ((h !== 'Moedertaal') || (h !== 'Zeer Goed')))
例如
d !== 'Master' //true,
d !== 'Doctoraat' //true
一种解决方案是使用具有所有度数的数组,并按如下方式使用:
var d = 'Bachelor';
var g = 'Moedertaal';
var h = 'Moedertaal';
var degrees = ['Bachelor', 'Master', 'Doctoraat', 'Moedertaal', 'Zeer Goed', 'Moedertaal', 'Zeer Goed'];
case 'NL':
//check if d meet the degrees requirements
if (degrees.indexOf(d) !== -1) {
console.log("You do not match the requirement: ", d, g, h);
return false;
}
break;
别担心,我们会帮你的。我在这里拉了把小提琴:
它最终进入第一个控制台,仅仅因为满足了条件。该怎么做,也许重写它是个好主意。
(d!=“Master”)
是真的
<代码>(g!='Zeer Goed')是真的
,我想你现在可以理解为什么了?实际的问题是,为什么这个问题无法理解?(d!='Bacher')| |(d!='Master')将始终是真的,无论所选语言的的值是什么样的?OP的一点普通礼貌会很好。。。也许是对问题的描述,而不是一个非常简洁的陈述。
var d = 'Bachelor';
var g = 'Moedertaal';
var h = 'Moedertaal';
selected_language = 'NL';
switch(selected_language) { //NL
case 'NL':
if( ((d!=='Bachelor') || (d!=='Master') || (d!=='Doctoraat') ) &&
((g!=='Moedertaal') || (g!=='Zeer Goed') ) &&
((h!=='Moedertaal') || (h!=='Zeer Goed') )) {
console.log("A");
return false;
}
break;
case 'FR':
if( ((d!=='Bachelier') || (d!=='Master') || (d!=='Doctorat') ) &&
((g!=='Très bon') || (g!=='Bon') ) &&
((h!=='Très bon') || (h!=='Zeer Goed'))) {
console.log("B");
return false;
}
break;
}
console.log("C");