JS 将二维数组类型的字符串转换成二维数组,不使用eval()

170 阅读1分钟

记录一下今天工作中遇到的一个需求,因为后端的同事说他从算法部拿到的数据就是类似于二维数组的字符串,需要我自行转换。但是网上很多的方法都使用的是 eval() 函数 ,这里提供另一种方法,直接上代码:

function strToArray(str) {
  if (!str) return [];
  return str.replace(/\[\[/g, '').replace(/\]\]/g, '').split('],[').map(item => {
    return item.split(',').map(item => {
      return parseInt(item);
    });
  });
}
const arr = strToArray('[[12,12,33,442],[112,122,331,221],[12,12,33,442],[112,122,331,221]]');

console.log(arr); // [[12,12,33,442],[112,122,331,221],[12,12,33,442],[112,122,331,221]]