我试图从ajax获取请求中提取数据。我可以访问Fields数组的路径,但不能访问DocImage数组。当我运行DocImage路径时,我得到
jquery.min.js:2 jQuery.Deferred exception: f.DocImage.map is not a
function TypeError: f.DocImage.map is not a function
这是我的Fields路径的代码,可以正常工作。出于保密原因,我无法显示该URL。
$("#btn").click(function() {
$.ajax({
url:
"",
method: "get",
async: true,
DataType: "application/json"
})
.then(function(data) {
console.log(data);
document.getElementById("test").innerHTML = data
.map(function(f) {
console.log(f);
return f.Fields.map(function(e) {
console.log(e);
return "<p>" + e.DisplayName + ": " + e.DataValue + "</p>";
}).join("<br/>");
})
.join("<br/>");
});
});
在这里,我切换出DocImage的字段。那就是我得到的错误。
$("#btn").click(function() {
$.ajax({
url:
"",
method: "get",
async: true,
DataType: "application/json"
})
.then(function(data) {
console.log(data);
document.getElementById("test").innerHTML = data
.map(function(f) {
console.log(f);
return f.DocImage.map(function(e) {
console.log(e);
return "<p>" + e.sfFilename + "</p>";
}).join("<br/>");
})
.join("<br/>");
});
});
这是控制台为数据显示的内容。
{Fields: Array(8), DocImage: {…}}
DocImage: {sfKey: 4, sfScanIndex: 4, sfFilename:
"\\"IPAddress"\images\2019-01\16\12896\0000\thisisapdffile.pdf}
Fields: (8) [{…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}]
__proto__: Object
最佳答案
这是您可能已经通过评论解决的答案。
问题
DocImage是对象,而map函数不适用于对象。
解
$("#btn").click(function() {
$.ajax({
url:"",
method: "get",
async: true,
DataType: "application/json"
})
.then(function(data) {
document.getElementById("test").innerHTML = data
.map(function(f) {
console.log(f);
return "<p>" + f.DocImage.sfFilename + "</p>";
})
.join("<br/>");
});
});