1. 程式人生 > >【js】將1-100之間的奇數存入陣列

【js】將1-100之間的奇數存入陣列

      陣列在js的應用中非常重要,很多地方都用到了陣列進行儲存資料。今天總結一個小小的問題,但是很容易忘記的小知識點。

要求:將1-100之間的奇數存入到陣列中。

分析:

        假設陣列array,迴圈判斷初始值var i=1。

        大家最先想到的方法應該是我們對i進行判斷,然後將符合條件的i值存入陣列array[i],最後進行列印檢視結果是否正確,程式碼如下:

var array=[];
for(var i = 1; i< 100; i++){
        if(i % 2 !== 0){
               array[i] = i;
        }
}
console.log(array);

列印結果為:

[1: 1, 3: 3, 5: 5, 7: 7, 9: 9, 11: 11, 13: 13, 15: 15, 17: 17, 19: 19, 21: 21, 23: 23, 25: 25, 27: 27, 29: 29, 31: 31, 33: 33, 35: 35, 37: 37, 39: 39, 41: 41, 43: 43, 45: 45, 47: 47, 49: 49, 51: 51, 53: 53, 55: 55, 57: 57, 59: 59, 61: 61, 63: 63, 65: 65, 67: 67, 69: 69, 71: 71, 73: 73, 75: 75, 77: 77, 79: 79, 81: 81, 83: 83, 85: 85, 87: 87, 89: 89, 91: 91, 93: 93, 95: 95, 97: 97, 99: 99]

       從結果我們可以看到陣列的下標不是連續的,但是我們想到的陣列應該是連續的,那麼為什麼會出現這個問題呢?因為我們在for迴圈中進行判斷的時候,是符合條件的才存進陣列,這個時候i也就是不連續的。

解決辦法:

       我在這裡舉了三個簡單的例子,可能還有其他的方法^^。

方法一:

var array=[];
for(var i = 1; i< 100; i++){
     if(i % 2 !== 0){
        array.push(i);
       }
}
console.log(array);

        push() 方法可向陣列的末尾新增一個或多個元素,並返回新的長度。

方法二:
var array = [];
var j = 0;
for(var i = 1; i< 100; i++){
    if(i % 2 !== 0){
         array[j] = i;
         j ++;
    }
}
console.log(array);
方法三:
var array = [];
for(var i = 1; i< 100; i++){
      if(i % 2 !== 0){
           array[array.length] = i;
        }
}
console.log(array);
       這個方法比較巧妙,我來解釋一下,剛開始array的長度為0,然後存入1,之後array長度加1,然後存入3,以此內推,最終得到的結果就是我們想要的。
列印結果:

[1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31, 33, 35, 37, 39, 41, 43, 45, 47, 49, 51, 53, 55, 57, 59, 61, 63, 65, 67, 69, 71, 73, 75, 77, 79, 81, 83, 85, 87, 89, 91, 93, 95, 97, 99]