根底にある問題がありますので、助けていただければ幸いです。
- 私の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それ自体に影響を与えるようです。なぜこうなった?