Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/382.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 查找序列中下一个数字的算法_Javascript_Jquery - Fatal编程技术网

Javascript 查找序列中下一个数字的算法

Javascript 查找序列中下一个数字的算法,javascript,jquery,Javascript,Jquery,顺序:1,2,3,…10 公式:x=n+1 假设序列是一个数组,在给定时间序列的前三个索引上包含1,3,5,其余索引包含0 function findNextNumber(numArry) { var number = 1; var tempArray = new Array(); for (i = 0; i < 10; i++) { tempArray[i] = "E"; } $.each(numArry, function ()

顺序:1,2,3,…10 公式:x=n+1

假设序列是一个数组,在给定时间序列的前三个索引上包含1,3,5,其余索引包含0

function findNextNumber(numArry) {
    var number = 1;
    var tempArray = new Array();
    for (i = 0; i < 10; i++) {
        tempArray[i] = "E";
    }
    $.each(numArry, function () {
        if (this != 0) {
            tempArray[this] = "F"
        }
    });
    $.each(tempArray, function (index) {
        if (this == "E") {
            number = index + 1;
            return false;
        }
    });
    return number;
}
现在,下一个数字应该是2,数组的前四个索引将有1,2,3,5,剩下的索引将包含0

function findNextNumber(numArry) {
    var number = 1;
    var tempArray = new Array();
    for (i = 0; i < 10; i++) {
        tempArray[i] = "E";
    }
    $.each(numArry, function () {
        if (this != 0) {
            tempArray[this] = "F"
        }
    });
    $.each(tempArray, function (index) {
        if (this == "E") {
            number = index + 1;
            return false;
        }
    });
    return number;
}
现在,下一个数字应该是4,数组的前五个索引将有1,2,3,4,5,剩下的索引将包含0

function findNextNumber(numArry) {
    var number = 1;
    var tempArray = new Array();
    for (i = 0; i < 10; i++) {
        tempArray[i] = "E";
    }
    $.each(numArry, function () {
        if (this != 0) {
            tempArray[this] = "F"
        }
    });
    $.each(tempArray, function (index) {
        if (this == "E") {
            number = index + 1;
            return false;
        }
    });
    return number;
}
现在,下一个数字应该是6,数组的前六个索引将有1,2,3,5,6,剩下的索引将包含0

function findNextNumber(numArry) {
    var number = 1;
    var tempArray = new Array();
    for (i = 0; i < 10; i++) {
        tempArray[i] = "E";
    }
    $.each(numArry, function () {
        if (this != 0) {
            tempArray[this] = "F"
        }
    });
    $.each(tempArray, function (index) {
        if (this == "E") {
            number = index + 1;
            return false;
        }
    });
    return number;
}
函数findNextNumber(numary){
var数=1;
var tempArray=新数组();
对于(i=0;i<10;i++){
tempArray[i]=“E”;
}
$.each(NUMARY,函数(){
如果(此!=0){
tempArray[this]=“F”
}
});
$.each(临时数组、函数(索引){
如果(此==“E”){
数字=指数+1;
返回false;
}
});
返回号码;
}

是我错了还是仅仅是以下几点

function formula(n){ return n+1; }
var sequence = [1,3,5,0,0,0,0,0,0,0];
var i=0;
function findNextNumber() {
    for (; i<10; i++) {
        var x = formula(i);
        if (sequence[i] != x) {
            sequence.splice(i, 0, x); // insert x here
            sequence.length = 10; // chop of rest
            return x;
        }
    }
    // else
    return null/undefined/whatever;
}

> findNextNumber()
2
> findNextNumber()
4
> findNextNumber()
6
> findNextNumber()
7
> findNextNumber()
8
> findNextNumber()
9
> findNextNumber()
10
> findNextNumber()
whatever
函数公式(n){返回n+1;}
var序列=[1,3,5,0,0,0,0,0,0];
var i=0;
函数findNextNumber(){
对于(;i findNextNumber()
2.
>findNextNumber()
4.
>findNextNumber()
6.
>findNextNumber()
7.
>findNextNumber()
8.
>findNextNumber()
9
>findNextNumber()
10
>findNextNumber()
无论什么

函数下一个路径(数组,直到){
this.array=array;
这个.lastIndex=0;
此.lastItem=0;
这个.直到=直到;
this.loopFinished=false;
这个。完成=错误;
this.reset=函数(){
这个.lastIndex=0;
此.lastItem=0;
这个。完成=错误;
this.loopFinished=false;
}
this.getNext=函数(){
如果(完成){
返回null;
}
如果(!this.loopFinished){
for(loop=this.lastIndex;loopuntil)
打破
返回此.lastItem;
}否则{
this.lastItem=this.array[loop];
}
}
}
this.loopFinished=true;
if(this.lastItem

。发布您的代码和您面临的问题。我有一个解决方案,但似乎没有时间efficient@TariqMahmood:您应该在问题中包含您的代码。注释部分仅适用于有限的代码片段。只要在找到正确的索引后立即中断循环,然后从该索引运行循环,就可以取得良好的效果er值提前一个索引。请注意,如果数组长度小于10,则此示例不能完全按照要求工作。然后它将无法填充其余的。好的,我更新了代码,现在它可以按要求工作