Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在使用REST调用获取的数据中重复值的计数次数_Javascript_Jquery_Rest_Sharepoint - Fatal编程技术网

Javascript 在使用REST调用获取的数据中重复值的计数次数

Javascript 在使用REST调用获取的数据中重复值的计数次数,javascript,jquery,rest,sharepoint,Javascript,Jquery,Rest,Sharepoint,我使用REST从SharePoint获取数据,一切正常,只是我想计算同一项出现的次数 这是jQuery: var url = "https:xxxxxxxx/_vti_bin/ListData.svc/RMSD_Tasks?$orderby=TypeOfIssueValue asc,StatusValue desc&$filter=StatusValue ne 'Completed'&groupby=TypeOfIssueValue/StatusValue"

我使用REST从SharePoint获取数据,一切正常,只是我想计算同一项出现的次数

这是jQuery:

 var url = "https:xxxxxxxx/_vti_bin/ListData.svc/RMSD_Tasks?$orderby=TypeOfIssueValue asc,StatusValue desc&$filter=StatusValue ne 'Completed'&groupby=TypeOfIssueValue/StatusValue";
var lastIssue = '';

$.getJSON(url, function (data) {

$('#totalCounter').text(data.d.results.length);


for (var i = 0; i < data.d.results.length; i++) {

    var dateReceived = data.d.results[i].DateReceived;
    dateReceived = new Date(parseInt(dateReceived.replace("/Date(", "").replace(")/", ""), 10)).toLocaleString('en-US', {
        year: 'numeric',
        month: 'numeric',
        day: '2-digit'
    });
    var issue = data.d.results[i].TypeOfIssueValue;
        console.log(data.d.results[i].TypeOfIssueValue);

    if (issue != lastIssue) {

        lastIssue = issue;

        $('#myDataList').append('<a href="#" class="list-group-item">' + issue + '<span class="badge">' + issue.length + '</span></a>');

    }

}


});
var url=“https:xxxxxxxx/\u vti\u bin/ListData.svc/RMSD\u任务?$orderby=TypeOfIssueValue asc,StatusValue desc&$filter=StatusValue ne'Completed'&groupby=TypeOfIssueValue/StatusValue”;
var lastIssue='';
$.getJSON(url、函数(数据){
$('#totalCounter').text(data.d.results.length);
对于(变量i=0;i
我需要计算特定类型的值出现的时间。当我看到控制台时,它准确地显示了我想添加到我的信息:


我刚刚添加了一个问题。徽章中的长度是我想插入数字,只是为了在那里有一些东西,但我知道它不会显示我想要什么。谢谢

您可以首先将
TypeOfIssueValue
值映射到一个新数组,然后根据值计算每次出现的次数

守则是:

var a = data.d.results.map(function(issue) {
    return issue.TypeOfIssueValue
});
result = {};
for (i = 0; i < a.length; ++i) {
    if (!result[a[i]])
        result[a[i]] = 0;
    ++result[a[i]];
}
var a=data.d.results.map(函数(问题){
返回问题。问题值的类型
});
结果={};
对于(i=0;i
结果将是一个对象,其属性为问题类型,值为每个问题的计数

让我知道这是否合理。

var数据={
d:{
结果:[
{TypeOfIssueValue:'456'},
{TypeOfIssueValue:'123'},
{TypeOfIssueValue:'789'},
{TypeOfIssueValue:'123'}
]
}
};
var filteredItems=data.d.results.filter(函数(项){
return item.TypeOfIssueValue=='123';
});
var count=filteredItems.length;
document.getElementById(“输出”).innerHTML=“值为'123'的项数:”+计数

谢谢@srinivas。我接受了你的回答,虽然我做了一些修改,只是为了防止它们对其他人有用

我在span徽章中添加了一个类,并添加了一个新数组来解决这些问题:

 issuesArray.push(data.d.results[i].TypeOfIssueValue);

$('#myDataList').append('<a href="#" class="list-group-item dataLI">' + issue + '<span class="badge badgeSpan"></span></a>');
issueArray.push(data.d.results[i].TypeOfIssueValue);
$('#myDataList')。附加('');
然后我添加了一个done()以在getJSON之后运行:

.done(

 function(){ var resultado = foo(issuesArray)[1]; 
 console.log(resultado);
 var badges = $('.badgeSpan');
 for (var j = 0; j < resultado.length; j++){
 badges[j].innerHTML = resultado[j];

 }

 });
。完成(
函数(){var resultado=foo(issuesArray)[1];
console.log(resultado);
var badges=$('.badgeSpan');
对于(var j=0;j
最后,我对您提供的函数foo()做了一个小修改:

testArray = [];
function foo(arr) {

var a = [], b = [], prev;

for ( var i = 0; i < arr.length; i++ ) {
    if ( arr[i] !== prev ) {
        a.push(arr[i]);
        b.push(1);
    } else {
        b[b.length-1]++;
    }
    prev = arr[i];
}
testArray.push(a,b)
return  testArray;

}
testArray=[];
函数foo(arr){
var a=[],b=[],上一个;
对于(变量i=0;i
这可能是一个非常非正统的解决方案,但它对我有效。再次感谢