首页 > 代码库 > 2017/3/29_数组循环遍历出现的问题

2017/3/29_数组循环遍历出现的问题

1.  以下代码实现的功能是:传入arr数组(arr数组中的元素可能有相同的),新建一个arr_new数组,通过for循环遍历arr数组,判断得到不重复的元素,放入  arr_new数组中。

 1 //通过传入的数组得到数组中不重复的内容
 2                 function l_arr(arr:Array)
 3                 {
 4                     var arr_new:Array = new Array();
 5                     var temp:int = 0;
 6                     for (var i = 0; i < arr.length-1 ;i++ ){
 7                         if(arr[i][0]!=arr[i+1][0]){
 8                             
 9                             arr_new[temp] = arr[i][0];
10                             temp++;
11                         }
12                     }
13                     arr_new[temp] = arr[i][0];
14                     return arr_new;
15                 }

注意:

   如果不小心将以上的代码中的第6行写成  for (var i = 0; i < arr.length ;i++)   将会出现以下错误:TypeError: Error #1010: 术语尚未定义,并且无任何属性。

所以在以后写代码的时候要注意数组遍历时的界限问题。

 

2.  以下代码的功能是将传进来的arr二维数组,筛选得到除了arr[i][0],剩下的的所有元素。

 

 1 //除了第一列,剩下的内容
 2                 function f_arr(arr:Array)
 3                 {
 4                     var arr_new:Array = new Array();
 5                     var arr_temp:Array = new Array();
 6                     for (var i = 0; i < arr.length;i++ ){
 7                         for (var j = 1; j < arr[0].length; j++ ){
 8                             arr_temp[j-1] = arr[i][j];
 9                         }
10                         arr_new[i] = arr_temp;
11                         arr_temp =new Array(); 
12                     }
13                     return arr_new;
14                 }

 

注意:如果只定义一个新的数组,如下。也会出现错误:TypeError: Error #1010: 术语尚未定义,并且无任何属性。

  所以以后在对二维数组进行操作时,要注意这个问题。

 1 //除了第一列,剩下的内容
 2                 function f_arr(arr:Array)
 3                 {
 4                     var arr_new:Array = new Array();
 5                     
 6                     for (var i = 0; i < arr.length;i++ ){
 7                         for (var j = 1; j < arr[0].length; j++ ){
 8                             arr_new[i][j-1] = arr[i][j];
 9                         }
10                     
11                     }
12                     return arr_new;
13                 }

 

2017/3/29_数组循环遍历出现的问题