首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >循环遍历从索引开始的对象

循环遍历从索引开始的对象
EN

Stack Overflow用户
提问于 2016-10-12 10:51:14
回答 3查看 3.1K关注 0票数 1

我有一个对象,它是聊天室列表,其中键是聊天室名称,值是对聊天室的引用。我想将房间交付给用户,一次50个房间。但我不明白如何使用对象来实现这一点。

假设您想循环遍历

代码语言:javascript
运行
复制
var obj = {
   "a" : 1,
   "b" : 2.
   "c" : 3
}

但从"b“开始,最后只访问"b”和"c“。可以做到吗,包括使用某种映射或表?

EN

回答 3

Stack Overflow用户

发布于 2016-10-12 10:57:37

你不应该依赖对象键来进行排序。尽管大多数浏览器(如果不是所有的话)都会对它们进行排序。

因此,如果你想信任浏览器,你可以添加一个计数器变量,并在计数器达到你想要的任何值后开始执行操作。您可以使用Object.keys()获取对象的长度(返回一个数组)。将两者混合在一起,您可以这样做:

代码语言:javascript
运行
复制
var object = {
    a: 1,
    b: 2,
    c: 3
};

var keys = Object.keys(object);
var counter;

for (counter = 0; counter < keys.length; counter++) {
    if (counter < 1) continue; // Skip until the second element
    console.log(object[keys[counter]]);
}

如果您事先不知道key的位置,可以添加一个flag变量,当您到达想要的key时激活它,如下所示:

代码语言:javascript
运行
复制
var keys = Object.keys(object);
var counter;
var start = false;

for (counter = 0; counter < keys.length; counter++) {
    if (keys[counter] === 'b') start = true;
    if (!start) continue;
    console.log(object[keys[counter]]);
}
票数 2
EN

Stack Overflow用户

发布于 2016-10-12 10:57:36

请参阅关于for...in循环的MDN帖子:

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for...in

基本上,您不能保证对象内部的键将被迭代的顺序。因此,跳过某个“索引”的想法根本不适用。我认为你需要遵循评论中的建议,要么保留一组你感兴趣的键,要么想出一种方法,当某些键出现在你的循环中时,快速排除它们。

票数 0
EN

Stack Overflow用户

发布于 2016-10-12 12:34:07

试试这条路

代码语言:javascript
运行
复制
var obj = {
   'a' : 1,
   'b' : 2.
   'c' : 3
};
var ignoreItems = ['a'];

for (var key in obj) {
  if (ignoreItems.indexOf(key) === -1) {
    // ADD YOUR CODE HERE
  }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39989768

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档