获取 Javascript 对象中一组键(圆形)中的下一个键

use*_*529 0 javascript

考虑以下:

var obj = {a:1, b:2, c:3, d:4, e:5, f:6};
Run Code Online (Sandbox Code Playgroud)

请注意,这不是数组(除非它在 ​​JS 中并且有一种方法可以映射它们)

给定一个密钥,我现在需要获取下一个密钥。它也需要是“圆形的”。所以findNext('c')应该是d,而findNext('f')应该是a

这是我想出的:

var obj = {a:1, b:2, c:3, d:4, e:5, f:6};
Run Code Online (Sandbox Code Playgroud)

鉴于所有键都是散列,有没有更好的方法来做到这一点?我可以避免不必迭代到 X 才能找到 next(X) 吗?

谢谢

Bru*_*oLM 6

使用

function findNext(key, obj) {
  var keys = Object.keys(obj);

  console.log(
    keys[(keys.indexOf(key) + 1) % keys.length]
  );
}

var obj = {a:1, b:2, c:3, d:4, e:5, f:6};

findNext('a', obj); // b
findNext('c', obj); // d
findNext('f', obj); // a
Run Code Online (Sandbox Code Playgroud)