Javascript 是否在JS中看到循环的前一项?

Javascript 是否在JS中看到循环的前一项?,javascript,Javascript,在我的for element of array循环中,我想访问当前元素之外的元素。特别是上一个或下一个元素。我也希望它能够跨越第一个/最后一个元素的障碍。如何做到这一点 即,给定: my_fruits = ['apple', 'banana', 'grapes', 'blueberries'] for (const fruit of my_fruits) { // When fruit === 'banana', I want to access 'apple', // wh

在我的
for element of array
循环中,我想访问当前元素之外的元素。特别是上一个或下一个元素。我也希望它能够跨越第一个/最后一个元素的障碍。如何做到这一点

即,给定:

my_fruits = ['apple', 'banana', 'grapes', 'blueberries']

for (const fruit of my_fruits) {
    // When fruit === 'banana', I want to access 'apple', 
    // when fruit === 'blueberries' I want to access 'grapes'.
    // Also when it's the last element, I want to acknowledge that and access the first. 
}
由于我在本地如何处理
async/await
.forEach
是我宁愿避免的事情


谢谢

您应该使用
forEach
循环并使用第二个参数,即索引

const arr=['苹果'、'香蕉'、'葡萄'、'蓝莓']
arr.forEach((x,i)=>{
设prev=i>0?arr[i-1]:null;
设next=i})
您可以使用常规的
(设i=0;i

让我的水果=[‘苹果’、‘香蕉’、‘葡萄’、‘蓝莓’];
for(设i=0,len=my_.length;i0)
{
log(“我现在有:+my_fruits[I]+”并且我可以访问“+my_fruits[I-1]);
}
如果(i+1==len)
{
log(“我在最后一次迭代中。第一项是:“+myu[I-1]);
}
}
var my_fruits=[“苹果”、“香蕉”、“葡萄”、“蓝莓”]
for(my_fruits.entries()的常量[索引,值]){
if(index)console.log(my_[index-1])

}
您可以使用
forEach
。回调函数的第三个参数是数组。因此,您可以使用它来获取
[i-1]
[i+1]

const my_fruits=[“苹果”、“香蕉”、“葡萄”、“蓝莓”]
my_fruits.forEach((item,i,{[i-1]:prev[i+1]:next})=>{
console.log(项目、上一个、下一个)
})
我希望你所需要的


问题是:您真的想使用<代码>作为
的一部分吗。如果是这样的话,尽管您实际上想要使用索引,但您无法直接访问索引,因此解决方案不会非常优雅。如果你不需要<代码>来进行<代码>,请使用经典的<代码>来进行<代码>循环,或使用<代码>来进行<代码>或<代码>来进行<代码>。是的,看起来“经典”循环将成为一种方式。你想一直获得前一个循环,还是想要获得像香蕉<代码>和<代码>蓝莓<代码>?始终是前一个元素,对于first和last,分别使用last和first,我的
for of
在一个异步函数中,并且包含wait调用,因此如果我避免使用
.forEach
,事情会更干净。如果有另一种解决方案可以避免使用
.forEach
,我更愿意使用它。@jsarbour您可以使用经典循环。或者您可以在中为..使用
。如果您确定数组没有其他属性。@jsarbour,这类信息应该在问题中……是的,我很抱歉,在它出现之前,我不记得它是相关的。我应该编辑并添加它吗<代码>用于(设i=0;i@Monics谢谢!我可能会用这个!@Cid changes:)@monicacha很不错,我不知道!非常好。我想要+1,但在OP澄清他不想使用
forEach
后,它不再适合这个问题
You can access the index of the current element. 
const my_fruits = ['apple', 'banana', 'grapes', 'blueberries']

for (let fruit in my_fruits) {

  fruit = parseInt(fruit);

   if (! my_fruits[fruit + -1]) {

      console.log(my_fruits[0] + " => " + my_fruits[fruit + my_fruits.length - 1]);

   } else {

      console.log(my_fruits[fruit] + " => " + my_fruits[fruit + -1]);

    }
}