在Javascript中调用的两个数字之间只打印偶数

时间:2017-02-04 20:26:13

标签: javascript

var abc;    
console.log(abc);  >>> undefined
var name;
console.log(name);  >>>      (it gives empty string and not undefined. Why?)

所以,我想让代码做的是在console.log中的给定数字中, 例如,(4,13)它应该打印所有偶数在4和13之间的数字。但是,该函数不是给出所有偶数,而是给出了所有4,13之间的数字。我该如何解决这个问题?

p.s在javascript中有任何strcmp吗?

2 个答案:

答案 0 :(得分:0)

for循环中的if语句中的变量错误。

if (minNumber%2 ==0){
    str += ',' + i;
}

应该是

if (i%2 ==0){
    str += ',' + i;
}

答案 1 :(得分:0)

我认为您希望在最小值和最大值之间显示数字,但不包括最小值或最大值。换句话说,evenNumbers(4,8)应该只显示6。我还假设最小值和最大值都是整数。

我将所有逻辑放在for循环参数中,for循环体只将这些数字和逗号放在输出字符串中。最终返回值将删除最后一个逗号。



function evenNumbers(minNumber, maxNumber){
  let str = '';
  for (let i = Math.ceil((minNumber + 0.5) / 2) * 2; i < maxNumber; i += 2) {
    str += `${i},`;
  }
  return str.slice(0,-1);
}

console.log('evenNumbers(4,13) returns: ' + evenNumbers(4,13));
console.log('evenNumbers(3,10) returns: ' + evenNumbers(3,10));
console.log('evenNumbers(8,21) returns: ' + evenNumbers(8,21));
console.log('evenNumbers(-8,5) returns: ' + evenNumbers(-8,5));
console.log('evenNumbers(-7,-2) returns: ' + evenNumbers(-7,-2));
console.log('evenNumbers(5,6) returns: ' + evenNumbers(5,6));
console.log('evenNumbers(10,2) returns: ' + evenNumbers(10,2));
&#13;
&#13;
&#13;