使用字符串作为键迭代JavaScript对象

拉尔斯·霍尔德(Lars Holdgaard)

我正在构建一个以字符串为键的JavaScript数组。

该数组在每个条目处都应有一个对象。我的对象看起来像这样(console.log我的变量rIds):

我的变量的Firebug屏幕截图

现在,该对象的长度为0,这使得无法对其进行迭代。

我想遍历每个键,因此可以检索和访问我的ID列表(rIds[key].productIds)。

代码

var rIds = [];
        var response = RR.data.JSON.placements;

        console.log(response);
        $(response).each(function (placementId) {
            var placement_name = this.placement_name;

            rIds[this.placement_name] = {
                productIds: []
            };

            $(this.recs).each(function (recIndex) {
                var pid = this.pid;
                pid = getRandomId(19341610, 19341746);
                rIds[placement_name].productIds[recIndex] = pid;
            });
        });

        var count = '<%=ViewBag.Get("RecommendationCount") %>';

        console.log(rIds);
        console.log(rIds.length);
        $.each(rIds, function (index, val) {
            console.log(val);  // This should work as expected.
        });

我尝试了什么?

我发现以下代码段在IE8中不起作用。但是,即使Object.keys(rIds).length得到正确的长度,这也无济于事

for (var index = 0; index < Object.keys(rIds).length; index++) {
            console.log(rIds[index]);
        }

但是,此代码不会使我访问该对象。

TL;问题

  • 如何迭代以字符串为键的JavaScript对象,以便可以访问各个条目?
尖尖的

Object.keys()函数返回一个包含对象属性名称的数组。

var keys = Object.keys(rIds);
for (var i = 0; i < keys.length; ++i) {
  console.log(rids[keys[i]]); // object value
}

或者,您可以使用以下.forEach()方法:

Object.keys(rIds).forEach(function(key) {
  console.log(this[key]);
}, rIds);

最后是古老的for ... in循环:

for (var key in rIds) {
  if (rIds.hasOwnProperty(key))
    console.log(rIds[key]);

为了IE9之前的IE版本,支持你是那种-的套牢for ... in,但你可以找到大部分是纠正“polyfills”为Object.keys()Array.prototype.forEach()在MDN。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用字符串作为IdentityHashMap中的键

来自分类Dev

如何使用字符串数组作为接口的键?

来自分类Dev

使用字符串作为IdentityHashMap中的键

来自分类Dev

使用字符串或符号作为键创建哈希

来自分类Dev

使用字符串而不是对象搜索字典键

来自分类Dev

JavaScript使用字符串值作为对对象的引用(不使用eval())

来自分类Dev

如何使用字符串的值作为对象的名称?

来自分类Dev

Java使用字符串作为对象调用

来自分类Dev

Django使用字符串作为查询对象属性

来自分类Dev

使用字符串作为名称创建对象

来自分类Dev

使用字符串键在JavaScript中创建对象的2D数组

来自分类Dev

Javascript-使用字符串构造对象属性

来自分类Dev

使用字符串访问JavaScript对象

来自分类Dev

使用字符串作为HTML

来自分类Dev

使用字符串作为HTML

来自分类Dev

为什么 JavaScript 在使用对象作为键时隐式字符串化参数值?

来自分类Dev

如何使用字符串作为关联数组键?

来自分类Dev

如何使用字符串作为PostgreSQL咨询锁的键?

来自分类Dev

java-使用字符串元组作为HashMap的键

来自分类Dev

使用字符串变量作为Python中嵌套json中的键

来自分类Dev

迭代对象列表并使用字符串获取element属性

来自分类Dev

将 json 作为字符串保存到 CoreData 并使用字符串创建对象数组

来自分类Dev

使用字符串变量的值作为对象参数访问器

来自分类Dev

Powershell-我可以在条件中使用字符串作为对象吗?

来自分类Dev

使用字符串变量的值作为对象参数访问器

来自分类Dev

在PHP中使用字符串作为对象名称

来自分类Dev

使用字符串数组作为路径动态访问嵌套对象

来自分类Dev

如何使用字符串的值作为对象名称?

来自分类Dev

如何在 JAVA 中使用字符串变量作为对象名称?

Related 相关文章

  1. 1

    使用字符串作为IdentityHashMap中的键

  2. 2

    如何使用字符串数组作为接口的键?

  3. 3

    使用字符串作为IdentityHashMap中的键

  4. 4

    使用字符串或符号作为键创建哈希

  5. 5

    使用字符串而不是对象搜索字典键

  6. 6

    JavaScript使用字符串值作为对对象的引用(不使用eval())

  7. 7

    如何使用字符串的值作为对象的名称?

  8. 8

    Java使用字符串作为对象调用

  9. 9

    Django使用字符串作为查询对象属性

  10. 10

    使用字符串作为名称创建对象

  11. 11

    使用字符串键在JavaScript中创建对象的2D数组

  12. 12

    Javascript-使用字符串构造对象属性

  13. 13

    使用字符串访问JavaScript对象

  14. 14

    使用字符串作为HTML

  15. 15

    使用字符串作为HTML

  16. 16

    为什么 JavaScript 在使用对象作为键时隐式字符串化参数值?

  17. 17

    如何使用字符串作为关联数组键?

  18. 18

    如何使用字符串作为PostgreSQL咨询锁的键?

  19. 19

    java-使用字符串元组作为HashMap的键

  20. 20

    使用字符串变量作为Python中嵌套json中的键

  21. 21

    迭代对象列表并使用字符串获取element属性

  22. 22

    将 json 作为字符串保存到 CoreData 并使用字符串创建对象数组

  23. 23

    使用字符串变量的值作为对象参数访问器

  24. 24

    Powershell-我可以在条件中使用字符串作为对象吗?

  25. 25

    使用字符串变量的值作为对象参数访问器

  26. 26

    在PHP中使用字符串作为对象名称

  27. 27

    使用字符串数组作为路径动态访问嵌套对象

  28. 28

    如何使用字符串的值作为对象名称?

  29. 29

    如何在 JAVA 中使用字符串变量作为对象名称?

热门标签

归档