我试图从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/>");
        });
    });

10-06 12:21