WEIRD:Javascript string.split()和forloop split prepends神秘的逗号','结果字符串

时间:2015-04-23 02:56:37

标签: javascript string

所以我正在搞乱JS Objects,尝试一下。我正在接受GET请求,是JSON,现在是对象。我选择了.api路径。我想遍历该对象并存储它的名称,以便我可以为ORM过期提取更多JSON。真的不重要。但这是JSON:

var fakeRESTResponse = function() {
  return {
    "swaggerVersion": "1.2",
    "apiVersion": "1.0.0",
    "apis": [{
      "path": "/Users"
    }, {
      "path": "/Skills"
    }, {
      "path": "/Resumes"
    }],
    "info": {}
  };
};


function createSubstr(strin, thechar) {
    var substr = [];

    for (var i = 0; i < strin.length; i++) {
        var str = ' ';
        if (strin[i] === thechar) {
            console.log("found first match" + strin + ' str[i] ' + strin[i] + ' thechar ' + thechar + ' str: ' + str);
            i++;
            while (strin[i] !== thechar && strin[i] !== ',' && i < strin.length && strin[i] !== '"') {
                if (str === ' ') str = strin[i];
                else str += strin[i];
                console.log(str + " : " + strin[i]);
                i++;
            }
            substr.push(str);
            str = ' ';

        }
    }
    console.log('Return substr ' + substr);
    return substr;
}

从服务器返回。在尝试.split之后,如下所示,我构建了一个手动函数和一些奇怪的东西:

http://codepen.io/willbittner/pen/aObVWG

上面的代码笔显示了返回奇怪对象的.split(&#39; /&#39;)函数:

expected: ['Users','Skills','Resumes'] 
.split: [',Users',',Skills',',Resumes']

现在,如果我移动功能:

substr.push(str);
str = ' ';

到下一个范围, **

http://codepen.io/willbittner/pen/GJROEV

**

你得到for循环和.split()产生那个whack逗号。

所以我知道它有一些事情要做(可能),循环中的值会在访问之前发生变化,因为我忽略了某些东西,但我无法弄清楚是什么导致这个!!

*注意 - 我不想修复它,所以请勿以不同的方式做出回应。我想知道为什么会这样。 *

对我来说 - 如果最后有一个字符APPENDED,那将更容易接受,但是我的代码中的错误是PREPENDS一个字符串,以及SHIFTS它!没有人物丢失!它也转移了它我想大声笑。

0 个答案:

没有答案