我的ajax调用返回一些数据,但我想用for循环消除它。
这个for循环每年都会获得第一个任务名称和最后一个任务名称,对于2001
它会检索task1 and task4
等等..
但是可以有更多的任务和更多的年份数据不仅4个,而且可以是6个或7个或10个。
for循环也会考虑这一点。
但实际上我遇到的问题是没有任何初始变量。 Ajax返回obj[]
数组,每个数组都有任务名和年。
如何将年份指定为初始变量并开始循环?
Taskname Year
task1 2001
task2 2001
task3 2001
task4 2001
task1-a 2002
task2-a 2002
task3-a 2002
task4-a 2002
task1-b 2003
task2-b 2003
task3-b 2003
task4-b 2003
答案 0 :(得分:2)
以下应该有所帮助。这认为记录按年份排序
var tasks = [{taskName:'task1','year':'2001'},
{'taskName':'task2','year':'2001'},
{'taskName':'task3','year':'2001'},
{'taskName':'task4','year':'2001'},
{'taskName':'task1-a','year':'2002'},
{'taskName':'task2-a','year':'2002'},
{'taskName':'task3-a','year':'2002'},
{'taskName':'task4-a','year':'2002'},
{'taskName':'task1-b','year':'2003'},
{'taskName':'task2-b','year':'2003'},
{'taskName':'task3-b','year':'2003'},
{'taskName':'task4-b','year':'2003'}
];
var resultArray = tasks.filter(function (item, index, array ){
if(index === 0 || index === (array.length -1)){
return true;
} else if(index < (array.length -1) ){
return (item.year !== array[index -1].year)
||(item.year !== array[index +1].year);
}
});
alert(JSON.stringify(resultArray));