Javascript:没有.split()方法拆分字符串?

时间:2015-03-23 11:08:37

标签: javascript function methods split refactoring

为了更好地理解函数,我建议重构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"]

有人可以帮我跟上我正在做的事情吗?我正在努力学习如何在功能上思考问题并使用算法推理,我不能对原始拆分方法的分隔符位做什么做什么。

感谢。

1 个答案:

答案 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, ' '));