题目
给出这样一组数字:
'11100101'
1
代表yes
,0
代表no
,要寻求完成一个switchStr
函数,最终的输出结果是:
1~3:”yes”,2~4:”no”,5:”yes”,6:”no”,7:”yes”
实现
首先想到用for
循环遍历实现,要注意遍历时起始的下标:
const switchStr = str = > {
let currentStr = str[0];
let start = 0;
let end = start;
let result = '';
for (let i = 0; i < str.length; i++) {
if (currentStr === str[i]) {
if (i !== 0) {
end++;
}
} else {
if (start === end) {
result += `${start + 1}: ${currentStr === '1' ? 'yes' : 'no'}`
} else {
result += `${start + 1}~${end + 1}: ${cu