1、你之前的答案是对的。有问题的是你全局变量的定义有问题,把你代码里的 i 变量的定义移到方法之外定义即可。
2、但是比较奇怪的是,你的代码里对于i变量没有进行奇数与偶数的处理,不知道是不是你代码没有贴全。
3、这个代码逻辑是比较简单的。具体代码如下图所示。
var reg = /^[0-9]+$/ //定义一个判断整数的正则//获得输入的值
var ipt = document.getElementById('input_id')?document.getElementById('input_id').value:''
if(reg.match(ipt)){ //如果为正整数
var ipt_int = parseInt(ipt )
if(ipt_int % 2 == 0)
alert(ipt + '为偶数!')
else
alert(ipt + '为奇数!')
}else
alert('请输入整数!')
添加了一点注释 !有什么不懂得可以继续问我!
<!DOCTYPE html><html>
<head>
<title></title>
<script>
//根据楼主的提示,在个数方面,我个人的理解只是算上“头”和“尾”两个数的,而且只算奇数个数,我感觉有些地方理解的不对,但信息上看总觉得有缺陷
//1. 比如勾了一奇一偶的情况下,个数勾了1和2,个数是分开算还是一起算?分开算的话又怎么算?
//2. 除了首尾以外,中间的数组元素算在个数当中吗?有什么规则呢?
(function () {
var result = true
var array = [1, 2, 3, 4, 6]
var conditions = {
head: true, //false:奇,true:偶
tail: true, //false:奇,true:偶
count: 0
}
if (conditions.count > 3) {
result = false
} else {
var firstNumber = array[0], lastNumber = array.pop()
//判断龙头的奇偶性
var head = firstNumber % 2 === 0
//判断凤尾的奇偶性
var tail = lastNumber % 2 === 0
//计算奇数的个数,我个人的理解只是算上“头”和“尾”两个数的,而且只算奇数个数
var oldCount = 0
if (head != tail) {
oldCount = 1
} else {
oldCount = head ? 0 : 2
}
/*
* 两个相同存在特殊判断
*/
if (conditions.head == conditions.tail) {
if (conditions.head && conditions.count > 0) {
result = false
}
if (conditions.head == false && conditions.count != oldCount) {
result = false
}
}
else {
if (conditions.head != head || conditions.tail != tail || conditions.count != oldCount) {
result = false
}
}
}
alert(result)
})()
</script>
</head>
<body>
</body>
</html>