配列に対して obj[obj.length]=xx としてもlengthが増えない


すごい初歩的なことかもしれませんがわからなかったので質問させて下さい。

配列のlength番目に代入すれば、その分配列の要素数も増えて  
以下のようにlengthの値も1増えると思うのですが、

javascript

[code]

    var array = ['A', 'B', 'C'];
    console.log(array.length); // 3
    
    array[array.length] = 'D';
    console.log(array.length); // 4
    console.log(array[3]); // D
    
[/code]

以下のような  
テキストボックスに数値を入力する度に  
テーブルの行毎の合計値を表示するものを書いてみたのですが、

html

[code]

    <!DOCTYPE html>
    <html>
      <head>
        <meta charset="utf-8">
        <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js"></script>
        <script src="hoge.js"></script>
      </head>
      <body>
        <table>
          <tr>
            <th>A</th>
            <th>B</th>
            <th>C</th>
            <th>合計</th>
          </tr>
          <tr>
            <td>
              <input type="text" value=0>
            </td>
            <td>
              <input type="text" value=0>
            </td>
            <td>
              <input type="text" value=0>
            </td>
            <td class="sum">
              0
            </td>
          </tr>
          <tr>
            <td>
              <input type="text" value=0>
            </td>
            <td>
              <input type="text" value=0>
            </td>
            <td>
              <input type="text" value=0>
            </td>
            <td class="sum">
              0
            </td>
          </tr>
        </table>
      </body>
    </html>
    
[/code]

hoge.js

[code]

    $(function(){
      $('input').on('keyup', function() {
        var sum = 0;
        var $inputs = $(this).parent().siblings().children('input');
        console.log($inputs[2]); // undefined
        console.log($inputs.length); // 2
    
        // siblings は自分は含まれないようなので
        $inputs[$inputs.length] = $(this)[0];
        console.log($inputs[2]); // <input type="text" value=0>
        console.log($inputs.length); // 2
    
        // lengthの値が増えないので <=
        for (var i = 0; i <= $inputs.length; i++) {
          sum += parseInt($inputs[i].value);
        }
    
        $(this).parent().siblings('.sum').text(sum);
      });
    });
    
[/code]

このように

[code]

    $inputs[$inputs.length] = $(this)[0]; 
    
[/code]

の前後で

[code]

    $inputs.length 
    
[/code]

の値が変わらないのはなぜでしょうか。  
よろしくお願いします。




jQueryの[.children()](https://api.jquery.com/children/)が返すのは配列ではなく[jQueryオブジェクト](http://api.jquery.com/Types/#jQuery)です。ですので`length`も反映されません。

