我的函數採用整數數組除數,low
數字和high
數字作爲參數。它打印的範圍在low
和high
之間。如何使我的if-else語句工作
- 如果該範圍內的數字可被數組的所有元素整除,則打印「全部匹配」。
- 如果至少有一個數字匹配,則打印「一個匹配」。
- 如果沒有數字匹配,請打印數字。
但是,我想不出如何正確編寫我的if-else語句。它只打印匹配的數字。當我更改else-if語句時,它將打印所有數字兩次。
function allFactors(factors, num){
var nums = [];
for(var i = 0; i < factors.length; i++) {
var factor = factors[i];
if(num % factor === 0){
nums.push(factor);
}
}
if(nums.length === factors.length){
return true;
}
return false;
}
//console.log(allFactors([2,3],6))
function isFactor(num, factor) {
if(num % factor === 0) {
return true;
}
return false;
}
function matches(factors, low, high) {
var skipper = false
for(var i = low; i <= high; i++) {
if(allFactors(factors,i)){
console.log(i + " match_all")
} else {
for(var j = 0; j < factors.length;j++) {
var factor = factors[j];
if(isFactor(i,factor)) {
console.log(i + " match_one");
skipper = true
} else {
if(isFactor(i,factor)) {continue}
console.log(i)
}
}
}
}
}
matches([2,3],1,6)
這行'skipper = true'是做什麼用的? – rupinderjeet
我在想,如果我可以讓第二條if語句成真,那麼我可以讓它不打印,但它仍然會打印 –