我有一個表示隊列的對象,並且我想保留它的最後n個元素(固定大小)。如何保留JavaScript對象(固定隊列)的最後N個屬性
var m = {};
m["t1"] = { a: "t1", b: "t1" };
m["t2"] = { a: "t2", b: "t2" };
......
......
m["tn-1"] = { a: "tn-1", b: "tn-1" };
m["tn"] = { a: "tn", b: "tn" };
在這個例子中,我想保留最後的N並刪除其餘的。
什麼是簡單的解決方案?可以用下劃線js來完成?
作爲「@AlexK注意到,」的for..in對象的順序在技術上不能保證匹配添加順序
編輯:
我發現一種解決方案:
m2= {};
_.each(_.last(_.keys(m), size), function(key){
m2[key] = m[key];
});
m= m2;
問題或問題是如果這有內存泄漏,未使用的項目會發生什麼?
廣東話,你剛剛從相反的順序循環,並刪除所有元素想到第一次和第二次(我的意思是最後的2個值)? – dreamweiver 2013-04-26 11:56:39
for..in對象的順序在技術上不能保證與添加的順序相匹配 – 2013-04-26 11:57:23
如果你保留最後2個,那麼當你添加一個新的{a:b}時你想要發生什麼?將它存儲在最後2個或之後? – 2013-04-26 12:09:47