Я пытаюсь создать метод 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"