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

如何使用JavaScript将含数组格式的字符串转换为Array?

字符串转数组的更优实现方案

我有字符串 '[a, b]',想要转换成格式为 ["a", "b"] 的数组,目前写了下面这段代码,想请教有没有更高效、更严谨的实现方式:

const string = '[a, b]'
const array = string.replace('[', '').replace(']', '').replaceAll('\'', '').split(',')
console.log(array)

几种更优的实现方式

  • 正则匹配+智能分割:一次性处理括号,同时解决元素空格问题

    const string = '[a, b]';
    // 匹配括号内的内容,再按「逗号+任意空格」分割
    const array = string.match(/\[(.+)\]/)[1].split(/\s*,\s*/);
    console.log(array); // ["a", "b"]
    

    优点:一次提取核心内容,分割时自动忽略逗号前后的空格,不会出现原代码中" b"带空格的问题。

  • JSON.parse转换(通用型):把字符串转成合法JSON格式后解析

    const string = '[a, b]';
    // 把所有标识符替换成带引号的字符串,再用JSON解析
    const array = JSON.parse(string.replace(/([a-zA-Z0-9_]+)/g, '"$1"'));
    console.log(array); // ["a", "b"]
    

    优点:适用性更广,哪怕元素是多字符(比如'[apple, banana]')也能正确转换,符合标准JSON格式解析逻辑。

  • 简化版替换+分割:用正则一次性去除首尾括号,再处理空格

    const string = '[a, b]';
    // 匹配开头的[和结尾的],一次性替换为空,再分割并去除元素空格
    const array = string.replace(/^\[|\]$/g, '').split(',').map(item => item.trim());
    console.log(array); // ["a", "b"]
    

    优点:逻辑直观,比原代码的多次replace更高效,同时通过trim()解决空格问题。

原代码的小问题

原代码执行后得到的是["a", " b"],第二个元素带有空格,不符合预期的["a", "b"],上面的方案都解决了这个问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 15:07:45