配列のコピー

間違いを犯していたので、メモ。
下記のように、関数の中で新しい配列outputDataを作成して、inputData(これも配列)にコピーしたつもりだったが、参照しか渡せていない。
outputDataは関数内でのみ有効な変数なので、関数の外に戻ったら、未定義になっている。

       var sampleFunc = function(inputData){
              var outputData = new Array();
              for(var k in outputData){
                outputData[k] = "Change!!";
              }
              //変更後データを上書き
              //参照しか渡していないので、この書き方はNG
              inputData = outputData;
              return inputData;
        };

inputDataを直接書き換えました。

       var sampleFunc = function(inputData){
              for(var k in inputData){
                inputData[k] = "Change!!";
              }
              return inputData;
        };