Я пытаюсь создать метод substr с указателем .... Есть ли более элегантное решение? - PullRequest
5 голосов
/ 21 сентября 2010

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

var string='Loremipsumdolorsitamet,consectetur'

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

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

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

offset pointer starts here now=>ipsumdolorsitamet,consectetur'

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

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

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 Ответ

10 голосов
/ 21 сентября 2010
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"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...