为了更好地理解函数,我建议重构String.prototype.split()方法。这不是为了学校,我是自学。我觉得这很直接,但四个小时后我很沮丧,我无法让它发挥作用。这是我到目前为止所做的:
var myString = "this is a sentence";
var split = function(string, splitParameter) {
var splitArray = [];
var stringElement = "";
var splitter = "";
var j = 0;
for (var i = 0; i < string.length; i++) {
if (string[i] !== splitParameter) {
stringElement += string[i];
splitArray[j] = stringElement;
}else {
j++;
splitter += string[i];
}
return splitArray;
}
console.log(split(myString," "));
我无法弄清楚如何处理splitParameter参数。当我按照上面粘贴的代码传入“”时,我得到:
["this", "thisis", "thisisa", "thisisasentence"]
当我将splitParameter更改为“”时,我得到:
["this is a sentence"]
当我传入“t”时,我得到:
[1: "his a sen", 2: "his is a senence"]
有人可以帮我跟上我正在做的事情吗?我正在努力学习如何在功能上思考问题并使用算法推理,我不能对原始拆分方法的分隔符位做什么做什么。
感谢。
答案 0 :(得分:0)
大家好,我是编程新手,仍在学习自己,想分享我对这个问题的理解。很高兴接受对我的解决方案的建议和批评。
let sentence = 'this is a sentence';
const cutString = (sentence, splitParameter) => {
storedString = '';
arrayString = [];
for (let i = 0; i<sentence.length; i++) {
if (sentence[i] !== splitParameter) {
storedString+=sentence[i];
} else if (sentence[i] === splitParameter) {
arrayString.push(storedString);
storedString = '';
continue;
}
}
if(storedString !== '') {
arrayString.push(storedString);
}
return arrayString;
}
console.log(cutString(sentence, ' '));