javascript - 使用 JQUERY 的对象中的下一项和上一项

标签 javascript jquery

我有一个定义的对象“数据”:

MYLIST
    61:
        ALREADY_EXIST: 1
        ARCHIVE: 0
        CODE_UNIT: "F.5"
        GROUP_TYPE: "Group"
        ID: 61
        SG_CODE: "ABCD00"
    62:
        ALREADY_EXIST: 0
        ARCHIVE: 0
        CODE_UNIT: "D.1"
        GROUP_TYPE: "Sub-Group"
        ID: 62
        SG_CODE: "ABCD11"
    86:
        ALREADY_EXIST: 1
        ARCHIVE: 0
        CODE_UNIT: "B.1"
        GROUP_TYPE: "Group"
        ID: 61
        SG_CODE: "ABC235"
    99:
        ALREADY_EXIST: 0
        ARCHIVE: 0
        CODE_UNIT: "A.2"
        GROUP_TYPE: "Group"
        ID: 62
        SG_CODE: "ABCD11"
SUBJECT_CODE_NUMBER: 4

我正在尝试解析此对象以显示前一个值和下一个值之后的值。

我想检索变量中的下一个和上一个元素,我该怎么做?

$.each(data.MYLIST,function(k,v){       
    alert(v); //OK
    console.log(data.MYLIST[k].SG_CODE); //OK
    console.log(????); // FOR THE NEXT VALUE
    console.log(????); // FOR THE PREVIOUS VALUE                        
});

在 Mylist 中 k 不是连续值。 k+1 不强制以下 k 值。例如,您有第 62 项,后面的项是 86。

因此我无法使用:

var next = data.EXPERT_GROUP[k+1].SG_CODE  
var previous= data.EXPERT_GROUP[k-1].SG_CODE 

在这种情况下,您知道获取下一个值和上一个值的方法吗? 预先感谢您的帮助。

塞布

最佳答案

使用 jQuery $.each,您可以使用函数的第一个参数直接访问索引。 假设您的索引不能为负。

 

var previous = -1;
$.each(data.MYLIST,function(k,v){
    alert(v); //OK

    if(previous != -1){
      console.log(data.MYLIST[previous].SG_CODE); // FOR THE PREVIOUS VALUE
    }
    console.log(data.MYLIST[k].SG_CODE); //OK
    previous = k;                     
});

应该解决前一个问题,如果您的索引不定期递增,则不要认为您可以访问下一个值。

关于javascript - 使用 JQUERY 的对象中的下一项和上一项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43651658/

相关文章:

javascript - 如何根据检查状态使我的 div 中的文本和复选框变为粗体和浅灰色

javascript - 提交是获取输入的最后一个值

php - PHP 中(跨平台)实时数据流的最佳方法?

javascript - 在内容更改时对内联 block 元素进行动画换行

javascript - 顺序运行Js代码

javascript - 如何从Datatable单元格获取内部html值

javascript - Spotify 应用程序播放列表,事件未触发

javascript - 如何根据文本内容选择复选框?

javascript - 如何在滚动条外隐藏提升缩放?

javascript - 给出父 'li' 的跨度内容索引号?