【问题标题】:Iterate through dictionaries in javascript and access values? [duplicate]遍历javascript中的字典并访问值? [复制]
【发布时间】:2014-11-19 18:21:19
【问题描述】:

我不是 javascript 专家,所以我确信我正在尝试做的事情非常简单,但是,这里是:

我有一个来自数据库的数组,它看起来像这样:

[{"name":"aName","lastName":"aLastname"},{"name":"bName","lastName":"bLastname"}]

我想遍历数组中找到的所有字典并访问aNameaLastname 等...所以在每个字典中找到的所有可能值,当时的字典。

我尝试使用eval(),我尝试使用JSON.parse,但JSON.parse 我认为这是在抱怨,因为我认为该对象已经以 JSON 的形式出现。

如何在 javascript 中做到这一点?

谢谢

然后我尝试按照“重复”答案评论的建议做...我这样做了:

        for(var i=0; i<array.length; i++) {
            var obj = array[i];
            for(var key in obj) {
                var value = obj[key];
                console.log(key+" = "+value);
            }
        }

问题是日志乱序。我明白了:

name = aName
name = bName
lastName = aLastName
lastName = bLastName

我想确保我一次按一个字典的顺序遍历属性和值。

这里缺少什么?

【问题讨论】:

  • 如果服务器响应合理,这将只是一个常规的 JavaScript 数组;像任何其他数组一样迭代它
  • 好的,我认为这很可能是重复的。如果可以的话,我会关闭它。谢谢

标签: javascript


【解决方案1】:

你可能想试试这个。

var arr = [{"name":"aName","lastName":"aLastname"},{"name":"bName","lastName":"bLastname"}];

arr.forEach(function(d){
    console.log(d.name, d.lastName);
});

【讨论】:

  • 请注意,如果这是在浏览器 javascript 中,它在 IE8 或更低版本中将不起作用。不过,这很容易用 polyfill 解决
【解决方案2】:
var test = [{"name":"aName","lastName":"aLastname"},{"name":"bName","lastName":"bLastname"}];

for (var i = 0; i < test.length; ++i) {
    alert(test[i].name + ", " + test[i].lastName);
}

http://jsfiddle.net/1odgpfg4/1/

【讨论】:

  • 这行得通,它还可以按顺序打印……
  • 平心而论,Johnroe Paulo Cañamaque 的回答比我略快,但是 this 表示 for 在 JavaScript 中的性能优于 forEach
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-08-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多