为了账号安全,请及时绑定邮箱和手机立即绑定

有没有办法过滤从 AJAX 查询创建的数组?

有没有办法过滤从 AJAX 查询创建的数组?

小怪兽爱吃肉 2022-01-07 13:17:14
我有一个查询运行以用 Sharepoint 列表中的条目填充表 - 我要做的是根据列表中特定字段的内容过滤此列表。这是否可能仅使用一个列表和 JavaScript,或者我需要创建不同的视图并根据选择的选项查询每个视图?function getIncidents(){ $.ajax({  url: "SharepointURL/_api/web/lists/getbytitle('Incident List')/items?$select=Title,Id,Priority,IncidentStart,IncidentStatus,IncidentTitle,UpdateResolution,ImpactedArea",  type: "GET",  headers: {"accept": "application/json;odata=verbose"},  success: function (data) {   var dResponse = data.d.results;   var results = document.getElementById('Results');   results.innerHTML += "<tr><td>Incident<br>Reference</td><td style='width:20px'></td><td>Priority</td><td style='width:20px;'></td><td>Start Time</td><td style='width:20px'></td><td style='width:170px'>Issue</td><td style='width:20px'></td><td style='width:170px'>Latest Update</td><td style='width:20px'></td></tr>";   for(var obj in dResponse){    results.innerHTML += "<tr style='font-size:10pt'><td>"+dResponse[obj].Title+"</td><td></td><td>"+dResponse[obj].Priority+"</td><td></td><td>"+dResponse[obj].IncidentStart+"</td><td></td><td>"+dResponse[obj].IncidentTitle+"</td><td></td><td>"+dResponse[obj].UpdateResolution+"</td></tr>";   }  } });}<script type="text/javascript" src="https://code.jquery.com/jquery-1.12.4.min.js"></script><input type="button" value="Get Incidents" onclick="getIncidents()"><table id="Results"></table>我试图过滤的字段是Incident Satusand Impacted Area,我打算不显示在前面的屏幕上,但我调用它以便我可以使用它来过滤。
查看完整描述

2 回答

?
叮当猫咪

TA贡献1776条经验 获得超12个赞

您可以filter在dResponse阵列上使用该功能。您没有指定您想要的过滤器,但这是一个基本示例。


<script type="text/javascript" src="https://code.jquery.com/jquery-1.12.4.min.js"></script>

<script>

function getIncidents(){

 $.ajax({

  url: "https://office4.bt.com/sites/ccim/Mobile/_api/web/lists/getbytitle('Incident List')/items?$select=Title,Id,Priority,IncidentStart,IncidentStatus,IncidentTitle,UpdateResolution,ImpactedArea",

  type: "GET",

  headers: {"accept": "application/json;odata=verbose"},

  success: function (data) {

   var dResponse = data.d.results;

   // we filter the data before using it.

   // we use const because we do not plan on reassigning the variable.

   const filteredResponse = dResponse.filter((item) => item.someFilteringData);


   var results = document.getElementById('Results');

   results.innerHTML += "<tr><td>Incident<br>Reference</td><td style='width:20px'></td><td>Priority</td><td style='width:20px;'></td><td>Start Time</td><td style='width:20px'></td><td style='width:170px'>Issue</td><td style='width:20px'></td><td style='width:170px'>Latest Update</td><td style='width:20px'></td></tr>";

   for(var obj in filteredResponse){

    results.innerHTML += "<tr style='font-size:10pt'><td>"+filteredResponse [obj].Title+"</td><td></td><td>"+dResponse[obj].Priority+"</td><td></td><td>"+dResponse[obj].IncidentStart+"</td><td></td><td>"+filteredResponse [obj].IncidentTitle+"</td><td></td><td>"+dResponse[obj].UpdateResolution+"</td></tr>";

   }

  }

 });

}

</script>


查看完整回答
反对 回复 2022-01-07
?
慕娘9325324

TA贡献1783条经验 获得超4个赞

那么最后你想通过一个或多个对象属性过滤一组对象吗?是的,这很容易。


let myArray = [ {a: 10, b: 'red'}, {a: 20, b: 'green'} ]

let filteredArray = myArray.filter(x=>x.b=='green')

一种更优雅的方式(如果可能)是将参数发送到您的 API 并过滤服务器端。


查看完整回答
反对 回复 2022-01-07
  • 2 回答
  • 0 关注
  • 110 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信