javascript - 获取在 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
是我宁愿避免的事情。
谢谢
解决方案
您应该使用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]}`)
}
推荐阅读
- php - Azure blob 存储与 codeigniter3 的集成
- javascript - React JS 在球形词云中改变单词
- javascript - 如何找到 Angular 7 div 的动态高度?
- reactjs - React Components 子组件渲染两次 - 有什么方法可以解决这个问题?
- javascript - 输入正确代码后,促销代码输入表单的 HTML 文件未链接到 HTML 文件
- java - 按键游戏后获得反应时间
- node.js - Sass 在 HSL 颜色中添加 # 到色调
- python - 返回非零元素
- c# - C# WinForms ComboBox:自动完成不会降序排序
- docker - 如何将自签名证书放入 GKE 集群的每个节点?