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]);
}
}