javascript - 在js数组中查找下一个和上一个键

标签 javascript arrays iteration underscore.js

我有一个数组

var arr = ["1", "3", "2", "4"];

我需要一个根据给定键值返回下一个或上一个数组键的函数:

function closestTo(arr, key, direction) { 
 // do stuff here and return the next or previous id
}

所以为了找到 4 中的下一个,我调用了函数; closestTo(arr, 4, 'next' ) 这应该返回 1

closestTo(arr, 4, 'prev' ) 应该返回 2

这方面的任何想法也可以通过 underscore 实现?

最佳答案

也许是什么 like this

function closestTo(arr, key, direction) {
    var offset_index = (direction === 'prev') ? -1 : 1;

    // Convert to integers
    var intarr = arr.map(function(x) {
        return parseInt(x, 10);
    });

    return intarr[(intarr.length + intarr.indexOf(key) + offset_index) % intarr.length];
}

关于javascript - 在js数组中查找下一个和上一个键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28388960/

相关文章:

javascript - 需要帮助将对象值作为 jQuery 选择器拉入

c - 如何计算字符串列表的出现次数并将其输出到新文件?

c# - 如何在选择的新 MyObject 中传递当前索引迭代

recursion - 每个递归函数都可以重写为迭代函数吗?

c++ - 将 std::string 复制到 char*(对于 TCP/IP 套接字)

java - 并发修改异常 : adding to an ArrayList

javascript - 使用最广泛、跨浏览器兼容性最强的 Javascript 图形库是什么?

javascript - 链接 js-cookie : Uncaught ReferenceError: module is not defined 时出现 Firefox 和 Chrome 错误

javascript - zeroclipboard - client.on 函数未调用

c - 动态二维数组崩溃