代码之家  ›  专栏  ›  技术社区  ›  Mona Coder

将字符串加载到数组的问题

  •  0
  • Mona Coder  · 技术社区  · 5 年前

    我得到了一组字符串格式的数组

    [49,16,135],[51,16,140],[50,18,150]
    

    现在我需要将它们保存在数组中。我试过了

    let array = [];
    let str = '[49,16,135],[51,16,140],[50,18,150]';
    array = str.split('[]');
        
    console.log(array);

    但它只创建一个数组,将所有字符串作为元素,而我需要

    array = [[49,16,135],[51,16,140],[50,18,150]]
    
    3 回复  |  直到 5 年前
        1
  •  4
  •   CertainPerformance    5 年前

    向字符串的每一端添加数组分隔符,然后使用 JSON.parse :

    const str = '[49,16,135],[51,16,140],[50,18,150]';
    const json = '[' + str + ']';
    const array = JSON.parse(json);
    console.log(array);
        2
  •  2
  •   Dhananjai Pai    5 年前

    您不正确地拆分它,在示例中,它只拆分 [] 串中

    您可以创建一个有效的JSON语法并像这样解析它,

    let str = '[49,16,135],[51,16,140],[50,18,150]';
    let array = JSON.parse(`[${str}]`);
    
    console.log(array);
        3
  •  0
  •   Nick Parsons Felix Kling    5 年前

    另一种方法是使用 Function 构造函数。此方法允许您“松散地”传递数组。

    const strArr = "[49,16,135],[51,16,140],[50,18,150]",
    arr = Function(`return [${strArr}]`)();
    
    console.log(arr);