如何不使用Array.split将字符串转为数组?能否用循环实现该方法?
手动实现Array.split()功能(仅用循环,无内置函数)
当然可以。我们可以通过遍历字符串的每一个字符,手动拼接单词并收集结果来实现这个功能。以下是针对你的需求的具体实现(以JavaScript为例):
实现思路
- 准备一个空数组存储最终拆分后的单词
- 用一个临时字符串变量拼接当前正在处理的单词
- 遍历输入字符串的每一个字符:
- 如果当前字符是分隔符(这里是空格),且临时字符串不为空,就把它加入结果数组,然后清空临时字符串
- 如果不是分隔符,就把字符追加到临时字符串中
- 遍历结束后,别忘了把最后一个未被处理的单词加入结果数组(因为字符串末尾没有空格)
代码实现
function customSplit(str, separator) { const result = []; let currentWord = ''; // 遍历字符串的每一个字符 for (let i = 0; i < str.length; i++) { const char = str[i]; if (char === separator) { // 避免空字符串被加入(比如连续空格的情况) if (currentWord !== '') { result.push(currentWord); currentWord = ''; } } else { currentWord += char; } } // 处理最后一个单词 if (currentWord !== '') { result.push(currentWord); } return result; } // 测试你的示例 const inputStr = "Hello how are you"; const splitResult = customSplit(inputStr, ' '); console.log(splitResult); // 输出: ["Hello", "how", "are", "you"]
额外说明
这个实现还能处理连续空格的情况(比如输入是"Hello how are you"),不会生成空字符串元素。如果需要适配其他分隔符,只需要传入对应的分隔符参数即可。
内容的提问来源于stack exchange,提问作者Amrit Pant
相关产品推荐
相关产品推荐

