Javascript JQuery检索下一个最大的元素

Javascript JQuery检索下一个最大的元素,javascript,arrays,Javascript,Arrays,在JQuery中,我有一个数组 (1,2,6,8) 我已经选择了保存在JQuery变量中的第一个元素1 submitterid = 1 单击一个链接,我试图获得数组中比我在SubmiterID中选择的元素更大的元素 我怎样才能做到这一点 编辑: 如何在代码中找到此数组中的最后一个元素 var previousId; $("#previous").click(function (){ index = submitters.inde

在JQuery中,我有一个数组

(1,2,6,8)
我已经选择了保存在JQuery变量中的第一个元素1

submitterid = 1
单击一个链接,我试图获得数组中比我在SubmiterID中选择的元素更大的元素

我怎样才能做到这一点

编辑:

如何在代码中找到此数组中的最后一个元素

  var previousId;

               $("#previous").click(function (){


            index = submitters.indexOf(submitterid),
                nextId;
            if (index - 1 < submitters.length) {
                previousId = submitters[index-1];
            } else {
                // no ID index

                 // if i am having an array of 1,2,6,8 after moving to 1 from 8 to 6 - 2-1 i am trying to move to the last element of the array
            }

            alert(previousId);




        });// previousId
var-previousId;
$(“#上一个”)。单击(函数(){
索引=提交者。indexOf(提交者ID),
nextId;
if(索引-1<提交者长度){
previousId=提交者[索引-1];
}否则{
//无ID索引
//如果我有一个1,2,6,8的数组,在从8移动到6-2-1之后,我试图移动到数组的最后一个元素
}
警报(以前的ID);
});// 以前的

为什么您不能执行以下操作:

var arr = [3, 5, 8, 3].sort(function (a, b) { return a - b; } );
var val = arr.pop();
任何值都会不断弹出数组--表示值不需要保留在数组中


如果随机选取值,并且需要下一个最高值,则编写相应的排序函数。

为什么不能执行以下操作:

var arr = [3, 5, 8, 3].sort(function (a, b) { return a - b; } );
var val = arr.pop();
任何值都会不断弹出数组--表示值不需要保留在数组中


如果随机选取值,并且需要下一个最高值,则编写相应的排序函数。

您必须在数组中循环。 请尝试以下未经测试的代码:

// Your test array.
var arrValues = [ "1", "2", "6", "8" ];

var low = 1;
var high = 2;

// Loop over each value in the array.
$.each( arrValues, function( intIndex, objValue ){

if (objValue > high)
  hight = objValue;

if (objValue < high)
  if (objValue > low)
    low = objValue

});

return low;
//您的测试数组。
风险值=[“1”、“2”、“6”、“8”];
var-low=1;
var高=2;
//循环数组中的每个值。
$.each(ARR值、函数(intIndex、objValue){
如果(objValue>高)
hight=objValue;
if(objValue<高)
如果(objValue>low)
低=OBJ7值
});
低回报;

您必须在阵列中循环。 请尝试以下未经测试的代码:

// Your test array.
var arrValues = [ "1", "2", "6", "8" ];

var low = 1;
var high = 2;

// Loop over each value in the array.
$.each( arrValues, function( intIndex, objValue ){

if (objValue > high)
  hight = objValue;

if (objValue < high)
  if (objValue > low)
    low = objValue

});

return low;
//您的测试数组。
风险值=[“1”、“2”、“6”、“8”];
var-low=1;
var高=2;
//循环数组中的每个值。
$.each(ARR值、函数(intIndex、objValue){
如果(objValue>高)
hight=objValue;
if(objValue<高)
如果(objValue>low)
低=OBJ7值
});
低回报;

实际上,没有必要为此使用任何特定于jquery的东西,除了单击事件处理之外,只需使用“纯javascript”即可

var myArray = [ 1, 2, 6, 8 ];
var submitterid = 1;

$(function() {
  $('a#id').click(function(event) {
    event.preventDefault();
    var greater = -1;
    // loop through array
    for (var i in myArray)
      // find numbers greater than the specified number
      if (i > submitterid)
        // find numbers closest to specified number
        if (i < greater || greater < 0)
          greater = i;

    if (greater < 0) {
      // no greater value found, do something
    } else {
      // next biggest value is in variable greater, do something with it
    }
  });

});
var myArray=[1,2,6,8];
var submitterid=1;
$(函数(){
$('a#id')。单击(函数(事件){
event.preventDefault();
var大于=-1;
//循环阵列
for(myArray中的变量i)
//查找大于指定数字的数字
如果(i>提交者ID)
//查找最接近指定数字的数字
如果(i<更大| |更大<0)
更大=i;
如果(大于<0){
//找不到更大的价值,做点什么吧
}否则{
//下一个最大的值是变量越大,用它做点什么
}
});
});

实际上,没有必要为此使用任何特定于jquery的东西,除了单击事件处理之外,只需使用“纯javascript”即可

var myArray = [ 1, 2, 6, 8 ];
var submitterid = 1;

$(function() {
  $('a#id').click(function(event) {
    event.preventDefault();
    var greater = -1;
    // loop through array
    for (var i in myArray)
      // find numbers greater than the specified number
      if (i > submitterid)
        // find numbers closest to specified number
        if (i < greater || greater < 0)
          greater = i;

    if (greater < 0) {
      // no greater value found, do something
    } else {
      // next biggest value is in variable greater, do something with it
    }
  });

});
var myArray=[1,2,6,8];
var submitterid=1;
$(函数(){
$('a#id')。单击(函数(事件){
event.preventDefault();
var大于=-1;
//循环阵列
for(myArray中的变量i)
//查找大于指定数字的数字
如果(i>提交者ID)
//查找最接近指定数字的数字
如果(i<更大| |更大<0)
更大=i;
如果(大于<0){
//找不到更大的价值,做点什么吧
}否则{
//下一个最大的值是变量越大,用它做点什么
}
});
});
您想要一个计数器:

function counter(arr) {
  this.arr = arr;
  this.index = 0;
}

counter.prototype.next = function() {
  return this.arr[this.index++];
}
您可以实例化它,并像以下那样使用它:

var nums = new counter([1,2,3,4,5]);
nums.next() ; => 1
nums.next() ; => 2
nums.next() ; => 3
你想要一个柜台:

function counter(arr) {
  this.arr = arr;
  this.index = 0;
}

counter.prototype.next = function() {
  return this.arr[this.index++];
}
您可以实例化它,并像以下那样使用它:

var nums = new counter([1,2,3,4,5]);
nums.next() ; => 1
nums.next() ; => 2
nums.next() ; => 3

如果数组已排序(请参见),请尝试以下操作:

var arr = [1,2,6,8],
    submitterid = 1,
    index = arr.indexOf(submitterid),
    nextId;
if (index + 1 < arr.length) {
    nextId = arr[index+1];
} else {
    // no ID index
}
var arr=[1,2,6,8],
提交者ID=1,
索引=arr.indexOf(提交者ID),
nextId;
如果(索引+1
如果数组已排序(请参阅),请尝试以下操作:

var arr = [1,2,6,8],
    submitterid = 1,
    index = arr.indexOf(submitterid),
    nextId;
if (index + 1 < arr.length) {
    nextId = arr[index+1];
} else {
    // no ID index
}
var arr=[1,2,6,8],
提交者ID=1,
索引=arr.indexOf(提交者ID),
nextId;
如果(索引+1
从jquery重新标记为javascript。从jquery重新标记为javascript。贾斯汀的代码也是个好主意。对数组进行排序,最后选择最高值。找到最后一个元素的位置,并返回最后一个元素——贾斯汀的代码也是一个好主意。对数组进行排序,最后选择最高值。查找最后一个元素的位置,并返回最后一个元素-1您不需要指定比较函数,因为这是默认的比较函数。您不需要指定比较函数,因为这是默认的比较函数。这是否会假设数字已排序为低->高?数字可能是1,6,3,9,7。我认为询问者不想知道如何排序;我想他的意思是他们想要下一个最大的指数。在这个例子中,他的数组已经被排序了。这不是假设数字已经被排序为低->高吗?数字可能是1,6,3,9,7。我认为询问者不想知道如何排序;我想他的意思是他们想要下一个最大的指数。他的数组已经在示例中排序。@Aruna:Replace
index+1
by
index-1>=0
nextId=arr[index+1]
with
prevId=arr[index-1]
@Aruna:Replace
index+1
by
index-1>=0
nextId=arr[index+1]
带有
prevId=arr[index-1]