Установить String с помощью функции String.prototype без возврата - PullRequest
1 голос
/ 21 февраля 2012

У меня есть следующая функция для добавления splice к строке:

String.prototype.splice = function(index, howManyToDelete, stringToInsert) {
    var characterArray = this.split('');
    Array.prototype.splice.apply(characterArray, arguments);
    return characterArray.join('');
}

Однако она работает точно так же, как Array.prototype.splice, что мне и нужно.Соединение массива возвращает значения, которые были удалены.Поэтому мне просто нужно знать, как установить новое значение в String без необходимости возвращать значение.

String.prototype.splice = function(index, howManyToDelete, stringToInsert) {
    var characterArray = this.split(''),
        retVal = Array.prototype.splice.apply(characterArray, arguments);
    newstringvalue = characterArray.join('');
    return retVal;
}

Редактировать:Видимо, вы не можете этого сделать, этого будет достаточно:

String.prototype.splice = function(index, howManyToDelete, stringToInsert) {
    var characterArray = this.split(''),
        rem = Array.prototype.splice.apply(characterArray, arguments);
    return {'s' : characterArray.join(''), 'x' : rem.join('')};
}

1 Ответ

2 голосов
/ 21 февраля 2012

Вы не можете этого сделать. Вы не можете изменить значение строки так, как вы изменяете содержимое массива.

Посмотрите на другие строковые методы и то, как они возвращают новое строковое значение, а не изменяют строку на месте.

...