function Index() {
this.words = {};
}
Index.prototype.addWord = function (word, pos, docId) {
var item = this.words[word],
row = [pos, docId];
if (item) {
item.push(row); // тут вылетит птичка
} else {
this.words[word] = [row];
}
};
// И есть код который создает объект и после этого в цикле скармливает слова из текста в addWord:
var index = new Index();
var docId = 1;
var words = ['hello', 'world' /* , ... еще 30 000 разных слов которые вы устанете читать ... */];
words.forEach(function (word, i) {
index.addWord(word, i, docId);
});
ZnVuY3Rpb24gSW5kZXgoKSB7CiAgICB0aGlzLndvcmRzID0ge307Cn0KCkluZGV4LnByb3RvdHlwZS5hZGRXb3JkID0gZnVuY3Rpb24gKHdvcmQsIHBvcywgZG9jSWQpIHsKICAgIHZhciBpdGVtID0gdGhpcy53b3Jkc1t3b3JkXSwKICAgICAgICByb3cgPSBbcG9zLCBkb2NJZF07CgogICAgaWYgKGl0ZW0pIHsKICAgICAgICBpdGVtLnB1c2gocm93KTsgIC8vINGC0YPRgiDQstGL0LvQtdGC0LjRgiDQv9GC0LjRh9C60LAKICAgIH0gZWxzZSB7CiAgICAgICAgdGhpcy53b3Jkc1t3b3JkXSA9IFtyb3ddOwogICAgfQp9OwoKLy8g0Jgg0LXRgdGC0Ywg0LrQvtC0INC60L7RgtC+0YDRi9C5INGB0L7Qt9C00LDQtdGCINC+0LHRitC10LrRgiDQuCDQv9C+0YHQu9C1INGN0YLQvtCz0L4g0LIg0YbQuNC60LvQtSDRgdC60LDRgNC80LvQuNCy0LDQtdGCINGB0LvQvtCy0LAg0LjQtyDRgtC10LrRgdGC0LAg0LIgYWRkV29yZDogCgp2YXIgaW5kZXggPSAgbmV3IEluZGV4KCk7CnZhciBkb2NJZCA9IDE7CnZhciB3b3JkcyA9IFsnaGVsbG8nLCAnd29ybGQnIC8qICwgLi4uINC10YnQtSAzMCAwMDAg0YDQsNC30L3Ri9GFINGB0LvQvtCyINC60L7RgtC+0YDRi9C1INCy0Ysg0YPRgdGC0LDQvdC10YLQtSDRh9C40YLQsNGC0YwgLi4uICovXTsKd29yZHMuZm9yRWFjaChmdW5jdGlvbiAod29yZCwgaSkgewogICAgICAgIGluZGV4LmFkZFdvcmQod29yZCwgaSwgZG9jSWQpOwp9KTsKCg==