在我的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.
}
Run Code Online (Sandbox Code Playgroud)
由于我async/await在当地人中的处理方式,.forEach因此我希望避免这种情况。
谢谢
您应该使用forEach循环并使用第二个参数index。
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}`)
})Run Code Online (Sandbox Code Playgroud)
如果您不想使用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]}`)
}Run Code Online (Sandbox Code Playgroud)
你可以使用forEach. 回调函数的第三个参数是数组。因此,您可以对其进行解构以获得第[i-1]和[i+1]th 项
const my_fruits = ['apple', 'banana', 'grapes', 'blueberries']
my_fruits.forEach((item, i, { [i-1]: prev, [i+1]: next }) => {
console.log(item, prev, next)
})Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
84 次 |
| 最近记录: |