我有一个数组:
var aNumbers = [1,2,1,3,4,4,5];
我需要验证两个条件:
首先,我需要知道数组是否包含数字,我有一个找到该元素的函数。 (没问题,它正在运作!)
function include(arr,obj) {
return (arr.indexOf(obj) != -1);
}
include(aNumbers,1);//true
include(aNumbers,6);//false
第二,我需要一个函数来按顺序验证数字,如下所示:
function consecutive(arr,obj){
//code
}
预期结果......
consecutive(aNumbers,6);//true
consecutive(aNumbers,7);//false
总结:我需要添加一个存在于我的数组中的数字,或者连续到最大数字。
if(include(aNumbers, newNumber)){
aNumbers.push(newNumber);
}else if(consecutive(aNumbers, newNumber)){
aNumbers.push(newNumber);
}else{
alert('Number not valid!!!');
}
我需要帮助我的功能才能连续验证!
答案 0 :(得分:2)
假设数组已排序
function consecutive(arr,obj){
return arr[arr.length - 1] + 1 === obj;
}
如果不是
function consecutive(arr,obj){
return Math.max.apply(Math, arr) + 1 === obj;
}
答案 1 :(得分:1)
那么,你想检查输入是否等于数组中的最后一个元素加1?
function consecutive(arr,obj){
return (arr[arr.length - 1] + 1) === obj;
}
错误处理不包括在内并取决于您。