问题
I have the following function to add splice
to a string:
String.prototype.splice = function(index, howManyToDelete, stringToInsert) {
var characterArray = this.split('');
Array.prototype.splice.apply(characterArray, arguments);
return characterArray.join('');
}
However it does quite work exactly like Array.prototype.splice
, which I need it to. The array splice returns the values which were removed. So I just need to know how to set a new value to a String
without having to return the value.
String.prototype.splice = function(index, howManyToDelete, stringToInsert) {
var characterArray = this.split(''),
retVal = Array.prototype.splice.apply(characterArray, arguments);
newstringvalue = characterArray.join('');
return retVal;
}
Edit:
Apparently you can't do that, this will have to suffice:
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:
You can't do that. You can't change the value of a string in the way that you change the content of an array.
Look at the other string methods, and how they return the new string value rather than changing the string in place.
来源:https://stackoverflow.com/questions/9370511/set-string-via-string-prototype-function-without-return