天天看點

js 簡單實作FIFO

<code></code>

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

<code>/* ======================================== LRU 最近最少使用 ======================================== */</code>

<code>    </code><code>function</code> <code>FifoCache(limit){</code>

<code>        </code><code>limit = limit||10;</code>

<code>        </code><code>var</code> <code>_store = [];</code>

<code>        </code><code>var</code> <code>index = {};</code>

<code>        </code><code>this</code><code>.get = </code><code>function</code><code>(key){</code>

<code>            </code><code>var</code> <code>ind = index[key];</code>

<code>            </code><code>return</code> <code>_store[ind];</code>

<code>        </code><code>};</code>

<code>         </code> 

<code>        </code><code>this</code><code>.set = </code><code>function</code><code>(key,value){</code>

<code>            </code><code>if</code><code>(_store.length&gt;=limit){</code>

<code>                </code><code>_store.shift();</code>

<code>            </code> 

<code>                </code><code>for</code><code>(</code><code>var</code> <code>k </code><code>in</code> <code>index){</code>

<code>                    </code><code>index[k] = index[k]-1;</code>

<code>                </code><code>} </code>

<code>            </code><code>}</code>

<code>             </code> 

<code>            </code><code>var</code> <code>length = _store.push(value);</code>

<code>            </code><code>index[key] = length-1;</code>

<code>        </code><code>this</code><code>.list = </code><code>function</code><code>(){</code>

<code>            </code><code>console.log(_store);</code>

<code>        </code><code>};     </code>

<code>    </code><code>}</code>

 本文轉自 antlove 51CTO部落格,原文連結:http://blog.51cto.com/antlove/1978074

繼續閱讀