You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Angular项目中如何用优雅方式在JavaScript的join()中添加&特殊字符?

优雅实现数组转带&分隔的字符串

针对你需要将动态数组转换为「前用逗号分隔,倒数第二位与最后一位用&连接」的字符串需求,这里提供两种优雅实现方式:

方式一:基于数组切片与拼接(适配所有数组长度)

直接通过数组切片分离前n-1个元素和最后一个元素,按规则拼接,无需修改原数组:

const numbers = [2019, 2020, 2021, 2022, 2023];
let result: string;

switch(numbers.length) {
  case 0:
    result = '';
    break;
  case 1:
    result = numbers[0].toString();
    break;
  case 2:
    result = numbers.join(' & ');
    break;
  default:
    result = `${numbers.slice(0, -1).join(', ')} & ${numbers.at(-1)}`;
}
// 输出:"2019, 2020, 2021, 2022 & 2023"

这种方法能完美适配空数组、单元素、双元素及多元素场景,逻辑直白且不破坏原数组。

方式二:基于字符串替换(简洁一行)

如果数组长度基本大于2,可先转成逗号分隔字符串,再用正则替换最后一个逗号为&:

const numbers = [2019, 2020, 2021, 2022, 2023];
const result = numbers.length <= 2 
  ? numbers.join(' & ') 
  : numbers.join(', ').replace(/, ([^,]+)$/, ' & $1');

正则/, ([^,]+)$/会精准匹配字符串末尾的「逗号+空格」,替换为「&+空格」,快速实现目标格式。

两种方式都避免了向数组插入元素的暴力操作,完全适配动态变化的数组。

内容的提问来源于stack exchange,提问作者Maestro

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 05:15:49