Я пытаюсь создать метод substr с указателем.... есть ли более элегантное решение?

Здесь сделка. Я делаю некоторые манипуляции с строкой, и часто использую метод substr. Однако способ, которым я должен его использовать, больше похож на метод php fread. В то время как мой субстрат должен руководствоваться указателем. Процесс должен действовать следующим образом:

var string='Loremipsumdolorsitamet,consectetur'

и если я прочитаю "Lorem"..... как мой первый вызов substr как таковой:

string.substr(offset,strLenth)//0,5

то мой следующий вызов substr должен автоматически начинаться со смещения, начинающегося с этой позиции в моей строке:

offset pointer starts here now=>ipsumdolorsitamet,consectetur'

Если вы не заметили, смещение должно знать, чтобы начать с шестой позиции в строке.

Soooo... Я придумал это рабочее решение, и я хочу знать, является ли это хорошим решением или у кого есть какие-либо рекомендации по его добавлению?

var _offSetPointer=0

var _substrTest={
    _offset:function(){return _offSetPointer+=getLength}
    };  


//usage, where p is the length in bytes of the substring you want to capture.
string.substr(_substrTest._offset(getLength=p),p)

Ответы

Ответ 1

var reader = function (string, offset) {
    offset = offset || 0;
    return function (n) {
        return string.substring(offset, (offset+=n||1));
    }
}

var read = reader("1234567");

read(2)
"12"

read(3)
"345"

read()
"6"

read(1)
"7"