毎秒関数を実行する次のコードがあります
var counter=setInterval(timer, 1000);
var global = [];
function timer()
{
var strJSON = '[{"id":"1","timeout":"2013-09-11 03:00:00"},{"id":"2","timeout":"2013-09-11 03:00:00"}]';
var currentRequest = [];
var obj = jQuery.parseJSON(strJSON);
for (var i=0; i<obj.length; i++) {
var id = obj[i].id;
var timeout = obj[i].timeout;
if(id in global)
{
alert(id+' in array');
} else {
alert(id+' not in array');
alert(id+' added');
global.push(id);
}
}
}
グローバル変数を更新し続けるために使用していますが、重複はありません。ただし、スクリプトを実行すると、最初の実行で 2 番目の ID が追加されると言われますが、次の出力が得られるため、実際には追加されません。
/** ファーストラン **/
- 1 配列にありません
- 1 追加
- 2 配列にありません
- 2 追加
/** セカンドラン **/
- 配列に 1 つ
- 2 配列にありません
- 2 追加
/** 3 回目の実行 **/
- 配列に 1 つ
- 2 配列
ここで何が間違っていますか?