Javascript “tgtg”, “主要类别”:“A” }, { “标题”:“DSDFSFDFSDSFSD”, “主要类别”:“A” }, { “标题”:“jk”, “主要类别”:“A” }, { “头衔”:“克里夫·柯蒂斯”, “主要类别”:“B” }, { “头衔”:“马丁·亨德森”, “主要类别”:“B” }] } } $(文档).ready(函数(){ 函数showMainCategoryData(){ 分类、页面; /* //在这里进行嵌套ajax调用,一个用于主要类别,另一个用于页面。 $.ajax({ url:url, ... 成功:功能(数据){ 如果(data.d.results.length>0){ //存储主要类别数据 主要类别=数据d.结果; //调用嵌套的`Pages`ajax(仅在主类别响应成功时运行) $.ajax({ url:url, ... 成功:功能(数据){ 如果(data.d.results.length>0){ //存储页面数据 pages=数据d.结果; //显示结果 显示结果(); }否则{ log('页面没有返回数据'); } }, 错误:函数(数据){} }); }否则{ log('MainCategories未返回任何数据'); } }, 错误:函数(数据){} }); */ 函数displayResults(){ var结果=”; var html=“Main CategoryPages”; //在主要类别上循环 对于(var catIdx=0;catIdx0){ //存储主要类别数据 主要类别=数据d.结果; //模拟对嵌套的“页面”ajax的调用 ajaxPageSuccess(页面模拟响应); }否则{ log('MainCategories未返回任何数据'); } } 函数ajaxPageSuccess(数据){ 如果(data.d.results.length>0){ //存储页面数据 pages=数据d.结果; //显示结果 显示结果(); }否则{ log('页面没有返回数据'); } } //触发第一个模拟ajax调用 ajaxCatSuccess(主要类别模拟响应) /************仿真代码结束***************/ } showMainCategoryData(); }); .maincatable{ 左边距:10%; 宽度:80%; 边框:3倍实心 } 梅因凯瑟博士{ 文本对齐:左对齐 } 帕德赖特先生{ 右边填充:10px; }

Javascript “tgtg”, “主要类别”:“A” }, { “标题”:“DSDFSFDFSDSFSD”, “主要类别”:“A” }, { “标题”:“jk”, “主要类别”:“A” }, { “头衔”:“克里夫·柯蒂斯”, “主要类别”:“B” }, { “头衔”:“马丁·亨德森”, “主要类别”:“B” }] } } $(文档).ready(函数(){ 函数showMainCategoryData(){ 分类、页面; /* //在这里进行嵌套ajax调用,一个用于主要类别,另一个用于页面。 $.ajax({ url:url, ... 成功:功能(数据){ 如果(data.d.results.length>0){ //存储主要类别数据 主要类别=数据d.结果; //调用嵌套的`Pages`ajax(仅在主类别响应成功时运行) $.ajax({ url:url, ... 成功:功能(数据){ 如果(data.d.results.length>0){ //存储页面数据 pages=数据d.结果; //显示结果 显示结果(); }否则{ log('页面没有返回数据'); } }, 错误:函数(数据){} }); }否则{ log('MainCategories未返回任何数据'); } }, 错误:函数(数据){} }); */ 函数displayResults(){ var结果=”; var html=“Main CategoryPages”; //在主要类别上循环 对于(var catIdx=0;catIdx0){ //存储主要类别数据 主要类别=数据d.结果; //模拟对嵌套的“页面”ajax的调用 ajaxPageSuccess(页面模拟响应); }否则{ log('MainCategories未返回任何数据'); } } 函数ajaxPageSuccess(数据){ 如果(data.d.results.length>0){ //存储页面数据 pages=数据d.结果; //显示结果 显示结果(); }否则{ log('页面没有返回数据'); } } //触发第一个模拟ajax调用 ajaxCatSuccess(主要类别模拟响应) /************仿真代码结束***************/ } showMainCategoryData(); }); .maincatable{ 左边距:10%; 宽度:80%; 边框:3倍实心 } 梅因凯瑟博士{ 文本对齐:左对齐 } 帕德赖特先生{ 右边填充:10px; },javascript,jquery,json,rest,Javascript,Jquery,Json,Rest,一些建议: 而不是根据maincegoryAPI调用响应每次调用PagesAPI调用。您只能调用两个API(maincegory和Pages)一次,以提高应用程序的性能 您可以异步调用这两个API来获取页面加载时的数据 $(document).ready(function() { function getCurrentMainCategoryID() { var url = "/test/_api/web/lists/getbytitle('MainCategory')/items?$se

一些建议:

  • 而不是根据
    maincegory
    API调用响应每次调用
    Pages
    API调用。您只能调用两个API(maincegory和Pages)一次,以提高应用程序的性能
  • 您可以异步调用这两个API来获取页面加载时的数据

    $(document).ready(function() {
      function getCurrentMainCategoryID() {
    var url = "/test/_api/web/lists/getbytitle('MainCategory')/items?$select=Title";
    $.ajax({
      url: url,
      method: "GET",
      headers: {
        "Accept": "application/json; odata=verbose"
      },
      success: function(data) {
        if (data.d.results.length > 0) {
          var mainCategoriesData = data.d.results;
          getPagesData();
        } else {
          console.log('MainCategories returned no data');
        }
    
        function getPagesData() {
          var url = "/test/_api/web/lists/getbytitle('pages')/items";
          $.ajax({
            url: url,
            method: "GET",
            headers: {
              "Accept": "application/json; odata=verbose"
            },
            success: function(data) {
              if (data.d.results.length > 0) {
                var pagesData = data.d.results;
              } else {
              console.log('Pages returned no data');
              }
            }
        });
        }
      }
    });
    
现在,您既有
页面
数据,也有
主类别
数据

var mainCategoriesData = [
            {                    
                "FileSystemObjectType": 0,
                "Id": 15,
                "ID": 15,
                "ContentTypeId": "0x010006DDBDD3BDC9914B92E911733F2A56E1",
                "Title": "A",
                "Modified": "2017-03-01T12:08:35Z",
                "Created": "2017-03-01T12:08:35Z",
                "AuthorId": 1,
                "EditorId": 1,
                "OData__UIVersionString": "1.0",
                "Attachments": false,
                "GUID": "c93d9db6-efd8-4b49-9024-f8cc30c0a48e"
            },
            {
                 "FileSystemObjectType": 0,
                "Id": 16,
                "ID": 16,
                "ContentTypeId": "0x010006DDBDD3BDC9914B92E911733F2A56E1",
                "Title": "B",
                "Modified": "2017-03-01T12:10:27Z",
                "Created": "2017-03-01T12:10:27Z",
                "AuthorId": 1,
                "EditorId": 1,
                "OData__UIVersionString": "1.0",
                "Attachments": false,
                "GUID": "a023853c-e967-4db8-8414-a7c390dcc09a"
            }];

var pagesData = [
            {    
                "Title": "Home",
                "MainCategory": "A"
            },
            {    
                "Title": "ewrwe",
                "MainCategory": "A"
            },
            {    
                "Title": "tgtg",
                "MainCategory": "A"
            },
            {    
                "Title": "dsdfsfdfsdfsdfsdfsdsdfsd",
                "MainCategory": "A"
            },
            {    
                "Title": "jk",
                "MainCategory": "A"
            }
        ];
使用循环,您可以迭代响应,并根据
主类别获得
页面计数

演示

var main分类数据=[
{                    
“FileSystemObject类型”:0,
“Id”:15,
“ID”:15,
“ContentTypeId”:“0x010006DDBDD3BDC9914B92E911733F2A56E1”,
“标题”:“A”,
“修改”:“2017-03-01T12:08:35Z”,
“已创建”:“2017-03-01T12:08:35Z”,
“作者”:1,
"社论":一,,
“OData_uuu版本字符串”:“1.0”,
“附件”:假,
“GUID”:“c93d9db6-efd8-4b49-9024-f8cc30c0a48e”
},
{
“FileSystemObject类型”:0,
“Id”:16,
“ID”:16,
“ContentTypeId”:“0x010006DDBDD3BDC9914B92E911733F2A56E1”,
“标题”:“B”,
“修改”:“2017-03-01T12:10:27Z”,
“已创建”:“2017-03-01T12:10:27Z”,
“作者”:1,
"社论":一,,
“OData_uuu版本字符串”:“1.0”,
“附件”:假,
“GUID”:“a023853c-e967-4db8-8414-a7c390dcc09a”
}];
var pagesData=[
{    
“头衔”:“家”,
“主要类别”:“A”
},
{    
“标题”:“ewrwe”,
“主要类别”:“A”
},
{    
“标题”:“dkjfkdf”,
“主要类别”:“B”
},            
{    
“标题”:“tgtg”,
“主要类别”:“A”
},
{    
“标题”:“DSDFSFDFSDSFSD”,
“主要类别”:“A”
},
{    
“标题”:“slkfjrel”,
“主要类别”:“B”
},            
{    
“标题”:“jk”,
“主要类别”:“A”
}
];			
var-resArr=[];
var计数=1;
对于(主分类数据中的var i){
用于(第页数据中的变量j){
如果(pagesData[j].MainCategory==mainCategoriesData[i].Title){
mainCategoriesData[i].PageScont=count++;
}
}
计数=1;
重射推力({
“主要类别”:主要类别数据[i]。标题,
“PageScont”:主要分类数据[i]。PageScont
})
}        
console.log(resArr);
使用
jQuery.getJSON()
它将返回已解析的对象。您只需要
/test/_api/web/lists/getbytitle('pages')/items??$select=Title,MainCategory&$filter=MainCategory eq
{
    "d": {
        "results": [
            {    
                "Title": "Home",
                "MainCategory": "A"
            },
            {    
                "Title": "ewrwe",
                "MainCategory": "A"
            },
            {    
                "Title": "tgtg",
                "MainCategory": "A"
            },
            {    
                "Title": "dsdfsfdfsdfsdfsdfsdsdfsd",
                "MainCategory": "A"
            },
            {    
                "Title": "jk",
                "MainCategory": "A"
            }
        ]
    }
}
<script>
$(document).ready(function() {
  function getCurrentMainCategoryID() {    
    var results = "";
    var html = "";
    html = "<table style='margin-left:20%;width:50%;boarder:3px solid'><th style='text-align:left'>Main Category</th><th></th><th style='text-align:left'>Pages</th>";
    var url = "/test/_api/web/lists/getbytitle('MainCategory')/items?$select=Title";

    $.ajax({
      url: url,
      method: "GET",
      async: false,
      headers: {
        "Accept": "application/json; odata=verbose"
      },
      success: function(data) {
        if (data.d.results.length > 0) {    
          results = data.d.results;
          for (var j2 = 0; j2 < results.length; j2++) {    
            var currentMainCatTitle = results[j2].Title;

            $.ajax({
              url: "/test/_api/web/lists/getbytitle('pages')/items??$select=Title,MainCategory&$filter=MainCategory eq " + "'" + currentMainCatTitle + "'",
              method: "GET",
              async: false,
              headers: {
                "Accept": "application/json; odata=verbose"
              },
              success: function(data) {
                if (data.d.results.length > 0) {
                  html = html + "<tr><td>" + "</td>" + "<td>  </td><td>" + data.d.results.length + "</td></tr>";
                }
              },
              error: function(data) {
              }
            });
          }    
        }    
      },
      error: function(data) {
      }
    });
    $("#inserthere").after(html + "</table>");

    return results;
  }

  getCurrentMainCategoryID();
});
</script>
<script>
$(document).ready(function() {

  function getCurrentMainCategoryID() {

    var results = "";
    var html = "<table style='margin-left:20%;width:50%;boarder:3px solid'><th style='text-align:left'>Main Category</th><th></th><th style='text-align:left'>Pages</th>";
    var url = "/test/_api/web/lists/getbytitle('MainCategory')/items?$select=Title";

    $.ajax({
      url: url,
      method: "GET",
      async: false,
      headers: {
        "Accept": "application/json; odata=verbose"
      },
      success: function(data) {

        var getTitle = result => result.Title;
        var results = data.d.results;
        var titles = results.map(getTitle);

        // not sure if it will be done in parallel
        // look for a library async.js vs parallel.js ???
        titles.map(title => getPages(title)) 

      }
    });

    $("#inserthere").after(html + "</table>");

    return results;
  });

  function getPages(title) {
    $.ajax({
      url: "/test/_api/web/lists/getbytitle('pages')/items??$select=Title,MainCategory&$filter=MainCategory eq " + "'" + title + "'",
      method: "GET",
      async: false,
      headers: {
        "Accept": "application/json; odata=verbose"
      },
      success: function(data) {
        if (data.d.results.length > 0) {
          html = html + "<tr><td>" + "</td>" + "<td>  </td><td>" + data.d.results.length + "</td></tr>";
        }
      }
    });
  }

  getCurrentMainCategoryID();
});
</script>
$(document).ready(function() {

  function getCurrentMainCategoryID() {

    var grouped;
    var html = "<table style='margin-left:20%;width:50%;boarder:3px solid'><th style='text-align:left'>Main Category</th><th></th><th style='text-align:left'>Pages</th>";
    var url = "/test/_api/web/lists/getbytitle('MainCategory')/items?$select=Title";

    $.ajax({
      url: url,
      method: "GET",
      async: false,
      headers: {
        "Accept": "application/json; odata=verbose"
      },
      success: function(data) {
        var getTitle = result => result.Title;
        var results = data.d.results;
        var titles = results.map(getTitle);

        grouped = titles.map(title => {
          return {title: title, results: getPages(title)}
        });

        console.log(grouped);
      }
    });

    $("#inserthere").after(html + "</table>");

    return grouped;
  });

  function getPages(title) {

    var resultsObject;

    $.ajax({
      url: "/test/_api/web/lists/getbytitle('pages')/items??$select=Title,MainCategory&$filter=MainCategory eq " + "'" + title + "'",
      method: "GET",
      async: false,
      headers: {
        "Accept": "application/json; odata=verbose"
      },
      success: function(data) {
        resultsObject = {
          pages: data.d.results,
          length: data.d.results.length
        }
      }
    });

    return resultsObject;
  }

  getCurrentMainCategoryID();
});
[
  {
    title: _,
    results: {
      pages: [...],
      length: n
    }
  }, {
    title: _,
    results: {
      pages: [...],
      length: n
    }
  },
]
$(document).ready(function() {
  function getCurrentMainCategoryID() {
var url = "/test/_api/web/lists/getbytitle('MainCategory')/items?$select=Title";
$.ajax({
  url: url,
  method: "GET",
  headers: {
    "Accept": "application/json; odata=verbose"
  },
  success: function(data) {
    if (data.d.results.length > 0) {
      var mainCategoriesData = data.d.results;
      getPagesData();
    } else {
      console.log('MainCategories returned no data');
    }

    function getPagesData() {
      var url = "/test/_api/web/lists/getbytitle('pages')/items";
      $.ajax({
        url: url,
        method: "GET",
        headers: {
          "Accept": "application/json; odata=verbose"
        },
        success: function(data) {
          if (data.d.results.length > 0) {
            var pagesData = data.d.results;
          } else {
          console.log('Pages returned no data');
          }
        }
    });
    }
  }
});
var mainCategoriesData = [
            {                    
                "FileSystemObjectType": 0,
                "Id": 15,
                "ID": 15,
                "ContentTypeId": "0x010006DDBDD3BDC9914B92E911733F2A56E1",
                "Title": "A",
                "Modified": "2017-03-01T12:08:35Z",
                "Created": "2017-03-01T12:08:35Z",
                "AuthorId": 1,
                "EditorId": 1,
                "OData__UIVersionString": "1.0",
                "Attachments": false,
                "GUID": "c93d9db6-efd8-4b49-9024-f8cc30c0a48e"
            },
            {
                 "FileSystemObjectType": 0,
                "Id": 16,
                "ID": 16,
                "ContentTypeId": "0x010006DDBDD3BDC9914B92E911733F2A56E1",
                "Title": "B",
                "Modified": "2017-03-01T12:10:27Z",
                "Created": "2017-03-01T12:10:27Z",
                "AuthorId": 1,
                "EditorId": 1,
                "OData__UIVersionString": "1.0",
                "Attachments": false,
                "GUID": "a023853c-e967-4db8-8414-a7c390dcc09a"
            }];

var pagesData = [
            {    
                "Title": "Home",
                "MainCategory": "A"
            },
            {    
                "Title": "ewrwe",
                "MainCategory": "A"
            },
            {    
                "Title": "tgtg",
                "MainCategory": "A"
            },
            {    
                "Title": "dsdfsfdfsdfsdfsdfsdsdfsd",
                "MainCategory": "A"
            },
            {    
                "Title": "jk",
                "MainCategory": "A"
            }
        ];
var results = [];
var html = "<table style='margin-left:20%;width:50%;boarder:3px solid'><th style='text-align:left'>Main Category</th><th></th><th style='text-align:left'>Pages</th>";

$.getJSON( "/test/_api/web/lists/getbytitle('MainCategory')/items?$select=Title")
  .done(function( categories ) {
    var mainCategoryResults = categories.d.results;
    $.getJSON( "/test/_api/web/lists/getbytitle('pages')/items?$select=Title,MainCategory")
      .done(function( pages ) {
        var pageResults = pages.d.results;      
        $(mainCategoryResults).each(function(k,v){
            var i=0;
            $(pageResults).each(function(key,val){
                if(v['Title'] === val['MainCategory']){
                    i++;
                }
            });
        results.push([v.Title,i]);
        });       
      })
      .fail(function( jqxhr, textStatus, error ) {
        var err = textStatus + ", " + error;
        console.log( "Pages Request Failed: " + err );
    });     
  })
  .fail(function( jqxhr, textStatus, error ) {
    var err = textStatus + ", " + error;
    console.log( "Categories Request Failed: " + err );
});