js 实现split
实现 split 方法的基本思路
JavaScript 的 split 方法用于将字符串分割成子字符串数组。以下是实现类似功能的几种方式:
使用原生 split 方法
原生 split 方法可以直接调用,支持分隔符和限制分割次数:
const str = "a,b,c,d";
const result = str.split(","); // ["a", "b", "c", "d"]
手动实现 split
可以通过循环遍历字符串,手动实现 split 功能:

function customSplit(str, delimiter, limit) {
const parts = [];
let currentPart = "";
for (let i = 0; i < str.length; i++) {
if (str[i] === delimiter) {
parts.push(currentPart);
currentPart = "";
if (limit && parts.length >= limit) break;
} else {
currentPart += str[i];
}
}
if (currentPart) parts.push(currentPart);
return parts;
}
使用正则表达式
正则表达式可以实现更复杂的分割逻辑:
function regexSplit(str, pattern) {
return str.split(new RegExp(pattern));
}
处理空字符串和边界情况
实现时需考虑空字符串或无效输入的情况:

function safeSplit(str, delimiter) {
if (typeof str !== "string") return [];
if (str === "") return [""];
return str.split(delimiter);
}
性能优化建议
对于长字符串,避免频繁拼接字符串,改用数组操作:
function optimizedSplit(str, delimiter) {
const parts = [];
let start = 0;
for (let i = 0; i < str.length; i++) {
if (str[i] === delimiter) {
parts.push(str.slice(start, i));
start = i + 1;
}
}
parts.push(str.slice(start));
return parts;
}
支持多字符分隔符
扩展实现以支持多字符分隔符:
function multiCharSplit(str, delimiter) {
const parts = [];
let index = 0;
while (index < str.length) {
const found = str.indexOf(delimiter, index);
if (found === -1) {
parts.push(str.slice(index));
break;
}
parts.push(str.slice(index, found));
index = found + delimiter.length;
}
return parts;
}






