我写了一个非常简单的循环来寻找点“。”的位置。和字符串中的空格,然后对其进行切片并将它们推入数组中。循环必须在找到最后一个点时结束。我想我犯了一个错误,因为循环没有正确退出引号,并且我得到了双重输出。
这是代码:
var str = '.boom .style #foo .media';
var p = 0;
var className = [];
searchLoop: for(i = 0; i < str.length; i ++) {
var n = str.indexOf('.', p);
var o = str.indexOf('#');
var p = str.indexOf(' ', n) ;
if(str.indexOf('#') >= 0)
var idName = str.slice(o + 1, n);
if(str.lastIndexOf('.') !== n)
className.push(str.slice(n + 1, p));
console.log(className);
console.log(idName);
if(str.lastIndexOf('.') === n) {
className.push(str.slice(n + 1, p) + str[str.length - 1]);
break searchLoop;
}
}
这是输出:
["boom", "style", "media"]
["boom", "style", "media"]
["boom", "style", "media"]
foo
我稍微编辑了代码,所以它也可以选择“#”,这次我得到了三倍的结果。