js join实现
使用 Array.prototype.join() 方法
join() 方法将数组的所有元素连接成一个字符串,默认使用逗号分隔。可以指定分隔符作为参数传入。
const arr = ['a', 'b', 'c'];
const result = arr.join(); // 默认逗号分隔:'a,b,c'
const resultWithDash = arr.join('-'); // 自定义分隔符:'a-b-c'
手动实现 join 功能
若不使用原生 join(),可以通过循环拼接字符串实现类似功能:
function customJoin(arr, separator = ',') {
let result = '';
for (let i = 0; i < arr.length; i++) {
result += arr[i];
if (i !== arr.length - 1) {
result += separator;
}
}
return result;
}
const arr = ['a', 'b', 'c'];
console.log(customJoin(arr, '-')); // 输出:'a-b-c'
使用 reduce 实现
通过 reduce 方法可以更简洁地实现 join:
function joinWithReduce(arr, separator = ',') {
return arr.reduce((acc, curr, index) => {
return acc + (index ? separator : '') + curr;
}, '');
}
const arr = ['a', 'b', 'c'];
console.log(joinWithReduce(arr, '|')); // 输出:'a|b|c'
处理空元素
若数组中包含 null 或 undefined,原生 join() 会将其转换为空字符串:
const arr = ['a', null, 'c'];
console.log(arr.join('-')); // 输出:'a--c'
手动实现时需注意处理这些情况:
function customJoinWithNullHandling(arr, separator = ',') {
return arr.map(item => item == null ? '' : item).join(separator);
}






