Javascript遍历对象

时间:2019-09-25 22:00:24

标签: arrays loops object

我有一个对象,该对象是通过我的REST API返回的,我需要遍历它以同步数据库。因此,该对象包含另一个称为表的对象。表对象具有带有表名及其键值对的不同数组。 我所做的两天都无法遍历表格对象,这真令人讨厌,将null或未定义的值取回来。

例如,我尝试使用JavaScript函数object.forEach((article)=> console.log(article.id,article.name));遍历表数组。

const obj = response.content.tables.article;

function findArticles(obj) {
    obj.forEach((article)=>console.log(article.id,article.name));

}

我无法收回任何价值。当我尝试console.log(response.content);它向我展示了一切。当我尝试输出response.content.tables时,它说未定义。

这是对象 response.content:

的结构
{
    "status": "1",
    "message": "sync out request successfull",
    "tables": {
        "article": [
          {
          "id": 1,
          "name": "baseball"
          },
          {
          "id": 2,
          "name": "truck"
          },
        ],
        "food": [],
        "animals: []
    }
}

2 个答案:

答案 0 :(得分:1)

在尝试获取属性之前,请尝试使用JSON.parse(xyz)将响应转换为对象。

var xyz = '{    "status": "1",  "message": "sync out request successfull",  "tables": {     "article": [{"id": 1,"name": "baseball"},{"id": 2,"name": "truck"}],"food": [],"animals": []}}'

var obj = JSON.parse(xyz);
$(obj.tables).each(function (ix, el) {
    console.log(el)
});

答案 1 :(得分:0)

我这样解决了:

var obj = response.content;
var JSON = JSON.parse(obj);
var articleTable = JSON.tables.article;

articleTable.forEach((article)=>console.log(article.id,article.name));

在将response.content对象解析为JSON之后,可以访问作为“表”和“文章”的嵌套对象。将带有articleTable变量的article对象传递给forEach之后,便可以访问每个元素。现在我得到结果了。

  

非常感谢您的帮助   T3.0没有您就无法解决问题。