Maximum size of an Array in Javascript

前端 未结 7 1760
我在风中等你
我在风中等你 2020-11-22 10:46

Context: I\'m building a little site that reads an rss feed, and updates/checks the feed in the background. I have one array to store data to display, and another which stor

7条回答
  •  清酒与你
    2020-11-22 11:17

    No need to trim the array, simply address it as a circular buffer (index % maxlen). This will ensure it never goes over the limit (implementing a circular buffer means that once you get to the end you wrap around to the beginning again - not possible to overrun the end of the array).

    For example:

    var container = new Array ();
    var maxlen = 100;
    var index = 0;
    
    // 'store' 1538 items (only the last 'maxlen' items are kept)
    for (var i=0; i<1538; i++) {
       container [index++ % maxlen] = "storing" + i;
    }
    
    // get element at index 11 (you want the 11th item in the array)
    eleventh = container [(index + 11) % maxlen];
    
    // get element at index 11 (you want the 11th item in the array)
    thirtyfifth = container [(index + 35) % maxlen];
    
    // print out all 100 elements that we have left in the array, note
    // that it doesn't matter if we address past 100 - circular buffer
    // so we'll simply get back to the beginning if we do that.
    for (i=0; i<200; i++) {
       document.write (container[(index + i) % maxlen] + "
    \n"); }

提交回复
热议问题