配列のコピー
間違いを犯していたので、メモ。
下記のように、関数の中で新しい配列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; };