根底にある問題がありますので、助けていただければ幸いです。
- 私のsciptのトップ私はグローバルな価値を宣言します('
_raw
') - (jQueryを使用)JSON配列データを返すAjax呼び出しを行います(確認しましたが、JSONデータは正しいです)
- このJSON応答を受け取り、に割り当てます
_raw
- リンクをクリックすると、
_raw
関数に渡されます。function myFunction(dataArray)
myFunction(_raw)
- この関数内で、いくつかの基準に基づいて、
dataArray
スプライスされます(つまりdataArray.splice(2,1)
) dataArray
その後、返されます。
例えば
var _raw;
// AJAX call sets RAW to an array e.g. Apple, Banana, Pear, Pineapple, Coconut, Raspberry
myFunction(dataArray){
var data=dataArray;
data.splice(2, 1);
return data[0];
}
$('a').click(function(){
result = myFunction(_raw);
alert(result);
// First time this is run, returns 'Pear', however, second time, returns 'Coconut'- as if the splice is being performed on _raw as well as myArray/data...
});
- 上記のコードが貧弱であることに感謝します。これは問題を説明するためのものです。
私が抱えている問題は、私が見る限り、唯一の時間_raw
が設定されているのはAJAX呼び出し中ですが、関数myFunctionが呼び出されて渡されると_raw
、スプライスも_raw
それ自体に影響を与えるようです。なぜこうなった?