Javascript 按选定的数值索引在数组上迭代

Javascript 按选定的数值索引在数组上迭代,javascript,jquery,arrays,Javascript,Jquery,Arrays,通过只知道所需数组项的索引,我想知道它的键值。从下面的数组中,它应该只返回:例如,3 理想的情况下,我也喜欢上一个和下一个id JSON HTML 这是我的笔:这将是答案。(根据评论中收到的一些指示进行组合) 这将通过仅使用所需的索引值在数组上迭代,从数组元素返回标记为ID的键的值 要迭代的数组 var steps = [{"id":"1","a":"a"},{"id":"3","b":"b"},{"id":"4","c":"c"}]; Jquery $(document).on('click

通过只知道所需数组项的索引,我想知道它的键值。从下面的数组中,它应该只返回:例如,3

理想的情况下,我也喜欢上一个和下一个id

JSON

HTML


这是我的笔:

这将是答案。(根据评论中收到的一些指示进行组合)

这将通过仅使用所需的索引值在数组上迭代,从数组元素返回标记为ID的键的值

要迭代的数组

var steps = [{"id":"1","a":"a"},{"id":"3","b":"b"},{"id":"4","c":"c"}];
Jquery

$(document).on('click','.steps', function() {
  clickedindex = $(this).data('index');
  //return the key value of "id" key.

   //answer
   currentstep = steps[clickedindex];
   console.log(currentstep["id"]); 

});

codepen:

数组是0基的,所以在您的示例中,索引2指向id 4。假设您的意思是数据索引=1,并且“上一个”和“下一个”不为空,那么如果我正确理解您的问题,这可以解决您的问题:

var prev, current, next; 
$(document).on('click','.steps', function() {
    clickedindex = $(this).data('index');
    prev = steps[clickedindex - 1].id;
    current = steps[clickedindex].id;
    next = steps[clickedindex + 1].id;
    console.log(prev + ' ' + current + ' ' + next ); 
});

您可以根据需要使用prev、current和next。

循环或previous/next是否应为空?在上面的示例中,previous/next不应为空。这样做有什么问题?您显然知道数组索引是如何工作的,Jonas的问题当然是关于它在边界情况下如何工作,而不仅仅是在示例中。我想你想要一个在其他情况下也能工作的解决方案?@omar no,它返回你在预期结果中显示的数组,而你仍然没有发现你自己的问题是什么。有很多方法可以做到这一点
var steps = [{"id":"1","a":"a"},{"id":"3","b":"b"},{"id":"4","c":"c"}];
$(document).on('click','.steps', function() {
  clickedindex = $(this).data('index');
  //return the key value of "id" key.

   //answer
   currentstep = steps[clickedindex];
   console.log(currentstep["id"]); 

});
var prev, current, next; 
$(document).on('click','.steps', function() {
    clickedindex = $(this).data('index');
    prev = steps[clickedindex - 1].id;
    current = steps[clickedindex].id;
    next = steps[clickedindex + 1].id;
    console.log(prev + ' ' + current + ' ' + next ); 
});