Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/474.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_For Loop_Typescript_Iterator - Fatal编程技术网

Javascript 标识当前循环中的下一项,用于迭代类型脚本

Javascript 标识当前循环中的下一项,用于迭代类型脚本,javascript,for-loop,typescript,iterator,Javascript,For Loop,Typescript,Iterator,在我的TypeScript项目中,我想将数组中的值与下一个值进行比较。如果我在JavaScript中执行此操作,我会执行以下操作: //JS for (var i = 0; i < codeBlocks.length; i++) { var j = i + 1; if (codeBlocks[i] > codeBlocks[j]) {return true;} return false; } 有没有一种方法可以在typescript中描述循环的…的“下一次迭

在我的TypeScript项目中,我想将数组中的值与下一个值进行比较。如果我在JavaScript中执行此操作,我会执行以下操作:

//JS
for (var i = 0; i < codeBlocks.length; i++) {
    var j = i + 1;
    if (codeBlocks[i] > codeBlocks[j]) {return true;}
    return false;
}

有没有一种方法可以在typescript中描述循环的…的“下一次迭代”值?

您可以在typescript中对(var i=0;i。但是你的周期只运行一次。

不。这不是的目的。。属于。你可以阅读更多关于它的内容

您必须使用
for(var i=0;i
语法

示例代码段:

var test = ['a','b','c']
for (var [index, cur] of test.entries()) 
{ 
  var j = index + 1;
  console.log("Current value: "+cur+"  Next value: "+test[j])
}

如果需要元素的索引,请使用foreach函数:

codeBlocks.forEach((item, index) => {
    console.log(item); // item in the array
    console.log(index); // item index in the array
});

首先,您的javascript代码是错误的,最后一个元素将与未定义的进行比较


也许您应该看看reduce函数

这是一个生成成对元素的生成器:

函数*对(数组){
设prev=array.shift();
对于(数组的v){
收益率[prev,v];
prev=v;
}
}

对于(让成对的([1,2,3]){console.log(pair);}
if(codeBlocks[i]>codeBlocks[i+1])代替if(codeBlocks[i]>codeBlocks[j])@BunkerBoy,我只是想在TypeScript中实现它,这个例子只是为了帮助解释这个问题。他如何在循环体中获得下一个值?我明白了。嗯,我认为这是一个很好的例子,它的语法看起来不同而且有点复杂。您可以使用
foreach
而不是
for
来提高代码的可读性。这就是它的目的。@GeorgeEdwards for..of不是特定于类型脚本的语法。这是ES6标准的一部分。不过,这并不是为了让您能够对数组进行索引访问。是的,但我的目标是es5和TypeScript编译,目的是为了…你所发布的内容,所以说“这不是目的”没有任何意义,“错”是相对的。通常,与
未定义的
进行比较将完全符合要求。您所说的“您的循环只运行一次”是什么意思?@torazaburo在循环的第一次运行中,它总是从函数返回。这意味着它在第一次运行时就打破了循环,但他的问题是“有没有一种方法可以在typescript中描述……of循环的“下一次迭代”值?”
var test = ['a','b','c']
for (var [index, cur] of test.entries()) 
{ 
  var j = index + 1;
  console.log("Current value: "+cur+"  Next value: "+test[j])
}
codeBlocks.forEach((item, index) => {
    console.log(item); // item in the array
    console.log(index); // item index in the array
});