在我的TypeScript项目中,我想将Array中的值与下一个值进行比较。如果我在JavaScript中这样做,我会做这样的事情:
//JS
for (var i = 0; i < codeBlocks.length; i++) {
var j = i + 1;
if (codeBlocks[i] > codeBlocks[j]) {return true;}
return false;
}
但是,我非常喜欢Typescript的语法,因为它更具可读性。
//TS
for (let codeBlock of codeBlocks) {
//logic
}
是否有一种方法可以描述循环的打字稿中的“下一次迭代”值?
答案 0 :(得分:4)
您可以使用readme
for (var [index, codeBlock] of codeBlocks.entries())
{
// your code you can use index
}
示例摘录:
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])
}
答案 1 :(得分:1)
如果您想要元素的索引,请使用 foreach 函数:
codeBlocks.forEach((item, index) => {
console.log(item); // item in the array
console.log(index); // item index in the array
});
答案 2 :(得分:0)
您可以在TypeScript中使用相同的语法for (var i = 0; i < codeBlocks.length; i++)
。但是你的周期只会运行一次。
答案 3 :(得分:0)
没有。这不是的目的>。您可以阅读更多相关信息on MDN。
您必须使用for (var i = 0; i < codeBlocks.length; i++)
语法。
答案 4 :(得分:0)
首先你的javascript代码是错误的,最后一个元素将与undefined
进行比较也许你应该看看减少函数https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/Reduce
答案 5 :(得分:0)
这是一个生成元素对的生成器:
function *pairs(array) {
let prev = array.shift();
for (v of array) {
yield [prev, v];
prev = v;
}
}
for (let pair of pairs([1,2,3])) { console.log(pair); }
&#13;
如果你想生成最后一对且未定义的最后一对,那么只需在函数末尾添加yield [prev, undefined];
。