我有一個日誌分析腳本來填充複雜的可視化。使用jquery搜索對象數組
圖片的陣列(稱爲,而unoriginally,「登錄」)活動的對象,其中每一個是在以下形式:在陣列中
{
name:foo,
activities:[
{time:t, action:a},
{time:t, action:a},
{time:t, action:a},
...
]
}
將有高達75的活動對象,每片含一系列400-600個動作(從前一天的午夜開始每隔5分鐘一個時隙)。
給定一個已知的活動名稱(上面的foo)和活動數組中已經存在的時間,我需要更新關聯的動作。
每個名稱都是唯一的,每次在數組中以5分鐘的增量升序排列。
因爲每次更新圖表時(因此平均需要更新1000個值和1000 * 500 * 60點圖表),我必須要做1000次以上的操作,所以性能是一個相當關鍵的問題。
在JQ循環比什麼都更有效率,我可以這麼寫,此刻,我有
n = "foo";
t = new Date(y,mm,d,h,m).toLocaleString() // matches a time stamp in the log
$.grep($.grep(log, function(n, i)
{
return (n.name == n)
}
)[0].activities, function(n, i)
{
return (n.time == t)
}
)[0].action = "bar";
這似乎是工作,但它採取了我這麼久,我有這麼多與我自己的論點,我不自信。
我錯過了一個更好的方法嗎?
*「在JQ循環是遠遠超過任何我能寫......更有效的」 *爲什麼地球上,你認爲呢? – 2013-03-14 05:35:32
你可以給時間序列的樣本值 – 2013-03-14 05:35:35
在本地格式如所有字符串「2013年3月13日上午09時40分○○秒」 – PerryW 2013-03-14 05:53:22