Javascript 如何对AJAX调用返回的数据进行分组?
我在sharepoint中创建了一个收集用户信息的列表。每个条目都有日期。有些日子有很多条目。我的目标是创建一个包含日期的选择菜单。当我单击菜单时,日期会填充,但它们会重复。如何将它们作为单个值返回 我尝试嵌套另一个for循环和一个if语句Javascript 如何对AJAX调用返回的数据进行分组?,javascript,ajax,rest,Javascript,Ajax,Rest,我在sharepoint中创建了一个收集用户信息的列表。每个条目都有日期。有些日子有很多条目。我的目标是创建一个包含日期的选择菜单。当我单击菜单时,日期会填充,但它们会重复。如何将它们作为单个值返回 我尝试嵌套另一个for循环和一个if语句 $.ajax({ url:url, method:'GET', headers:{ 'Accept': 'application/json; odata=verbose' }, success: function(data){
$.ajax({
url:url,
method:'GET',
headers:{ 'Accept': 'application/json; odata=verbose' },
success: function(data){
var dat = data.d.results;
for (var i = 0;i < dat.length; i++){
html+='<optionvalue='+itm.dateVal+'>'+itm.dateVal+'</option>';
} $('#week-selector').append(html);
},
error: function(e){
console.log('error:'+e);
}
});
我想要得到的输出是:
3/3/2019
3/3/2019
3/3/2019
3/3/2019
3/6/2019
3/6/2019
3/10/2019
3/10/2019
3/3/2019
3/6/2019
3/10/2019
您可以很容易地编写一个过滤器函数来获得不同的值
var-arr=[
"3/3/2019",
"3/3/2019",
"3/3/2019",
"3/3/2019",
"3/6/2019",
"3/6/2019",
"3/10/2019",
"3/10/2019"
];
var distinctDates=arr.filter(函数(val,idx,self){返回self.indexOf(val)==idx;});
控制台日志(distinctDates)代码>var arr=['3/3/2019','3/3/2019','4/4/2019']
arr.filter(函数(项,i){return arr.indexOf(项)==i;})您可以使用集合删除重复值,然后将其转换回数组:
var arr = [
"3/3/2019",
"3/3/2019",
"3/3/2019",
"3/3/2019",
"3/6/2019",
"3/6/2019",
"3/10/2019",
"3/10/2019"
];
console.log(Array.from(new Set(arr)));
// ["3/3/2019", "3/6/2019", "3/10/2019"]```
也许是一个重复的问题: