javascript - 170k item array not being processed correctly -


i have fiddle (note: accesses 2k file via jsonp). has small word list @ load consisting of 2 , 3 letter words, loaded array. it's filtered using array.prototype.filter. works.

then page starts downloading enable1 word list (used games featuring word list). @ point, filter functions ends empty array, instead of expected 105 words.

i can confirm that, both before , after,

  • my word list has same starting word (aa) should displayed,
  • the lists have 1091 , 172820 words respectively
  • all words lowercase, , have no surrounding spaces
  • on load, filtering criteria "has 2 letters"
  • there no errors on console
  • there 100mb (25%) increase in fiddle's page's ram usage, system has 35% ram remaining

here's code.

function vm() {       var self = this;      self.characters = ko.observable(2);      self.words = ko.observablearray(document.getelementbyid("words")         .innerhtml.split(/\s+/g).slice(1, -1)         .map(function (word) {         return word.tolowercase();     }));              self.possible = ko.computed(function () {         var letters = self.letters(),             starters = self.startswith(),             enders = self.endswith(),             characters = self.characters();          return self.words().filter(function (word) {             return word.length === parseint(characters);         })             .filter(function (word) {             if (enders === "") return true;              (var = enders.length; >= 0; --i) {                 if (word.slice(-1) === enders[i]) return true;             }              return false;         })/* other filtering code */;      }); }  ko.applybindings(app = new vm);  $.getjson('http://anyorigin.com/get?url=https://scrabble-dictionary-search.googlecode.com/svn-history/r6/trunk/src/main/resources/enable1.txt&callback=?', function(data){     app.words(data.contents.split("\n"));     console.log(app.words().length); }); 

what causing this? how can work same smaller list?

i think problem when "split" result of ajax call. if log array obtain when split response, see things that: "aa\r".

if use:

app.words(data.contents.split("\r\n")); 

instead of:

app.words(data.contents.split("\n")); 

that better.


Comments

Popular posts from this blog

c++ - Creating new partition disk winapi -

Android Prevent Bluetooth Pairing Dialog -

VBA function to include CDATA -