我正在 Pug 模板中运行脚本。该脚本首先从 MongoDB 读取 JSON 对象数组。使用 for 循环迭代字符串化数组 (data
) 以访问每个 JSON 对象 (doc
)。接下来,我迭代每个对象的键/值对 (col
),其中有固定数量 (20
)。
var data = !{JSON.stringify(response.features)}
for(var doc = 0; doc <= data.length; doc++)
for(var col = 1; col <= 20; col++)
console.log(data[doc[col]])
有 8 个对象,每个对象有 20 个键/值对(列)。因此,我可以看到 180 个返回的 undefined
实例,这表明代码工作正常,但由于某种原因我无法访问或查看返回的数据?最终目标是生成一个表,其中每一行对应一个对象的键/值对。
数组格式:Array(8) [ {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…} ]
对象格式:对象 { _id: "4598hs9h390b", name: "测试功能", testValue: 3, … }
最佳答案
您正在尝试使用索引访问对象属性。您需要做的是对像 Object.keys() 这样的键使用迭代器.
尝试以下方法获取数据:
var data = !{JSON.stringify(response.features)}
for(var doc = 0; doc <= data.length; doc++)
Object.keys(data[doc]).forEach(function(key,index) {
console.log(data[doc][key])
});
或
var data = !{JSON.stringify(response.features)}
for(var doc = 0; doc <= data.length; doc++) {
for(var col of Object.keys(data[doc])) {
console.log(data[doc][col])
}
}
关于Javascript 循环遍历 JSON 对象数组找到实例,但将它们记录为未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52995409/