使用for循环在javascript中迭代特定数组

时间:2014-07-14 16:01:00

标签: javascript json

我的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

1 个答案:

答案 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));