js 里面数组长度的问题

    var arr = [1500, 1200, 2000, 2100, 1800];
    var arr1 = [];
    for(var i = 0; i < arr.length; i++){
        if(arr[i] < 2000){
            console.log(arr1.length);
            arr1[arr1.length] = arr[i];
        }
    }

    console.log(arr1);

这个是代码。 请问为啥可以把小于两千的都取出来?,arr1.length可以自增?

arr1.length最开始是0,所以是arr1[0] ,arr[0] == 1500 ==》 arr1[0] = 1500 ,赋值之后 arr1.length ==1
arr1.length==1 , 所以是arr1[1], arr[1] == 1200 ==》arr[1] = 1200 , 赋值之后 arr1.length == 2
...以此类推,最终arr1是有三个值