を指向質問です:実装スプリット()メソッドは、ここではJavascriptの2N版
がString()コンストラクタが存在しなかった想像してみてください。可能な限りString()のように機能するコンストラクタ 関数MyString()を作成します。 組み込みの文字列メソッドまたはプロパティ を使用することはできません。String()は存在しません。私はどのようにその機能を実装する方法を再作成する分割方法、に見当もつかないがコンストラクタを作成し
:あなたはあなたのコンストラクタをテスト にこのコードを使用することができます。だから今、あなたが行うことができます
MyString.prototype.split = function(splitter){
var tmp="", result = [];
for(var i = 0; i < this.length; i++){
for(var offset = 0; offset < this.length && offset < splitter.length;offset++){
if(this[i+offset] !== splitter[offset]) break;
}
if(offset === splitter.length){
result.push(tmp);
tmp="";
i += offset -1;
}else{
tmp+=this[i];
}
}
result.push(tmp);
return result;
};
:あなたはsplitメソッドを実装する方法のアイデアを与えることができれば
、私は
function MyString(str) {
var thisObj = this;
var innerLength = 0;
this.length;
function updateLength() {
innerLength = 0;
for (var i = 0; str[i] != undefined; i++) {
innerLength++;
thisObj[i] = str[i];
}
thisObj.length = innerLength;
}
updateLength();
this.toString = function() {
return str;
}
this.charAt = function(i) {
if (isNaN(parseInt(i))) {
return this[0]
} else {
return this[i]
}
}
this.concat = function(string) {
str += string;
updateLength();
}
this.slice = function(start, end) {
var slicedString = "";
if (start >= 0 && end >= 00) {
for (start; start < end; start++) {
slicedString += str[start];
}
}
return slicedString;
}
this.reverse = function() {
var arr = str.split("");
arr.reverse();
var reversedString = "",
i;
for (i = 0; i < arr.length; i++) {
reversedString += arr[i];
}
return reversedString;
}
}
var ms = new MyString("Hello, I am a string")
console.log(ms.reverse())
別にJAVAあることから、ここで使用するための答えは次のとおりです。https://stackoverflow.com/questions/2939691/i-want-to-split-string-without -using-split-function – mplungjan
'.equals'メソッドを追加します。それと 'slice'とループを使うと、' split'を簡単に実装できるはずです。 – Bergi