如何在Javascript中从数组中查找上一个或下一个元素?

如何在Javascript中从数组中查找上一个或下一个元素?,javascript,jquery,arrays,sorting,Javascript,Jquery,Arrays,Sorting,我有一个表单,我在其中获取id。我从数据库中获取一个id数组。我必须首先检查当前的_id是否在数组中。为此,我写了下面的代码,这是为我工作 现在假设我想转到当前_id的前一个id或者我想转到当前_id的下一个id如何在javascript中获取此类数据 例如: 我在当前_id=5上。用户将单击上一个按钮,然后它应该到达{'id':4}。若用户点击next_按钮,那个么它应该转到{'id':7} 若用户已经在当前_id=4上,并且他点击了上一个_按钮,那个么它应该返回false。下一个按钮也一样

我有一个表单,我在其中获取id。我从数据库中获取一个id数组。我必须首先检查当前的_id是否在数组中。为此,我写了下面的代码,这是为我工作

现在假设我想转到当前_id的前一个id或者我想转到当前_id的下一个id如何在javascript中获取此类数据

例如:

我在当前_id=5上。用户将单击上一个按钮,然后它应该到达{'id':4}。若用户点击next_按钮,那个么它应该转到{'id':7}

若用户已经在当前_id=4上,并且他点击了上一个_按钮,那个么它应该返回false。下一个按钮也一样


提前感谢。

您可以通过以下方式在全局变量中设置当前选定的id位置: 例如

let currentPos = 1;
然后单击prevButton,您可以导航

arr[currentPos-1]&更改currentPos=currentPos-1

下一个按钮也是这样

arr[currentPos+1]&更改currentPos=currentPos+1

尝试使用Jquery$.each循环执行以下操作

var current_id=; 函数重定向类型 { IFU当前id== { 当前_id=5; } var arr=[{'id':4},{'id':5},{'id':7},{'id':8},{'id':9}]; $.eacharr,functioni,ID{ ifID.id==当前\u id { iftype=='Pre' { ifi!=0 { 当前_id=arr[i-1].id; 警报“先前ID为:”+当前ID; return false;//此返回false用于break$。每个循环 } } else iftype==“下一步” { ifi!=arr.length-1 { 当前_id=arr[i+1].id; 警报“下一个ID为:”+当前ID; return false;//此返回false用于break$。每个循环 } } } }; } 以前的
接下来您可以通过各种方法来实现这一点

var arr = [{'id':4},{'id':5},{'id':7},{'id':8},{'id':9}], arrids=arr.map(e=>e.id);
var current_id = 5, prev_btn = $("#prev"), next_btn = $("#nex");
prev_btn.click(e=>{ 
  current_id--;
  var prevObj = arr[arrids.indexOf(current_id)] ? arr[arrids.indexOf(current_id)] : null;
  console.log(prevObj);
});
next_btn.click(e=>{
  current_id++;
  var nextObj = arr[arrids.indexOf(current_id)] ? arr[arrids.indexOf(current_id)] : null;
  console.log(nextObj);
})
根据您的需要更改此代码。

您可以在此处尝试此代码:

说明:

项目索引良好,并检查您在数组中的当前位置

显示当前索引

当prev按钮单击check(检查)时,它的第一项不是数组,而不是条件减量1,并显示值current item-1

单击“下一个”时,将显示相同的条件和最后一个项目,或者不选中此处,并更改当前索引和显示值增量2

在next(下一步)按钮中,单击display increment by 2(一次显示增量2),因为当前index increment(索引增量)打开时,它会显示增量2,主要原因是元素增加1,索引包含为0。一次增加2

如果在itemIndex之后显示-;然后你增加1

var arr=[{'id':4},{'id':5},{'id':7},{'id':8},{'id':9}]; 无功电流_id=5; //查找数组中是否存在当前id var itemIndex=arr.mapfunctiono{return o.id;}.indexOfcurrent\u id; //显示索引的值 document.getElementById'display'.innerHTML=itemIndex+1; document.getElementById'prev'。addEventListener'click',函数E{ ifitemIndex!=-1&&itemIndex!=0{ document.getElementById'display'.innerHTML=itemIndex; 项目索引-; } }; document.getElementById'next'。addEventListener'click',函数E{ ifitemIndex!=-1&&arr.length-1>itemIndex{ document.getElementById'display'.innerHTML=itemIndex+2; itemIndex++; /*document.getElementById'display'.innerHTML=itemIndex+1*/ } }; 上
下一步跟踪索引。要转到上一个或下一个,请分别使用索引-1或索引+1。只需检查索引-1是否为负值,您也可以在此处查看代码:
var arr = [{'id':4},{'id':5},{'id':7},{'id':8},{'id':9}], arrids=arr.map(e=>e.id);
var current_id = 5, prev_btn = $("#prev"), next_btn = $("#nex");
prev_btn.click(e=>{ 
  current_id--;
  var prevObj = arr[arrids.indexOf(current_id)] ? arr[arrids.indexOf(current_id)] : null;
  console.log(prevObj);
});
next_btn.click(e=>{
  current_id++;
  var nextObj = arr[arrids.indexOf(current_id)] ? arr[arrids.indexOf(current_id)] : null;
  console.log(nextObj);
})