考虑以下:
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) 吗?
谢谢
使用
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); // aRun Code Online (Sandbox Code Playgroud)