js原生实现split
原生 JavaScript 实现 split 方法
JavaScript 的 split 方法用于将字符串分割成数组,可以通过原生代码模拟其功能。以下是实现思路和代码示例:
基础实现
原生 split 的核心逻辑是遍历字符串,根据分隔符拆分并收集子字符串。
function customSplit(str, separator, limit) {
const result = [];
let current = '';
let count = 0;
for (let i = 0; i < str.length; i++) {
const char = str[i];
if (char === separator) {
if (current !== '') {
result.push(current);
current = '';
count++;
if (limit && count >= limit) break;
}
} else {
current += char;
}
}
if (current !== '') {
result.push(current);
}
return result;
}
处理正则表达式分隔符
如果需要支持正则表达式作为分隔符,可以使用 RegExp 进行匹配:
function customSplit(str, separator, limit) {
const result = [];
let lastIndex = 0;
let count = 0;
const regex = new RegExp(separator);
while (true) {
const match = regex.exec(str.slice(lastIndex));
if (!match) break;
const matchedText = match[0];
const matchIndex = match.index + lastIndex;
result.push(str.slice(lastIndex, matchIndex));
lastIndex = matchIndex + matchedText.length;
count++;
if (limit && count >= limit) break;
}
result.push(str.slice(lastIndex));
return result;
}
边界条件处理
需要考虑空字符串、无分隔符等情况:

function customSplit(str, separator, limit) {
if (str === '') return [''];
const result = [];
if (separator === undefined) return [str];
// 其他逻辑...
}
使用示例
console.log(customSplit('a,b,c', ',')); // ['a', 'b', 'c']
console.log(customSplit('a b c', ' ')); // ['a', 'b', 'c']
console.log(customSplit('a,b,c', ',', 2)); // ['a', 'b']
此实现覆盖了基本的分割功能,但原生 split 的完整实现还包括更多边界条件和功能细节,如 Unicode 字符处理、捕获组等。






