首页 > 解决方案 > 获取在 JS for of 循环中看到的上一个项目?

问题描述

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

IE。给定:

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是我宁愿避免的事情。

谢谢

标签: javascript

解决方案


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

const arr = ['apple', 'banana', 'grapes', 'blueberries']

arr.forEach((x,i) => {
  let prev = i > 0 ? arr[i - 1] : null;
  let next = i < arr.length ? arr[i + 1] : null;
  
  console.log(`current:${x} next:${next} previous: ${prev}`)
})

如果您不想使用forEach,可以使用for..in. 但请确保您没有在数组上添加除索引以外的任何属性。

const arr = ['apple', 'banana', 'grapes', 'blueberries']
for(let i in arr){
  console.log(`current:${arr[+i]} next:${arr[+i+1]} previous: ${arr[+i-1]}`)
}


推荐阅读