简介:
今天前端同事向我请教一问题,情况是这样的,我另外一后端同事给她返回了一串固定格式的字符:{eee: [444, 555, 666], ddd: [666, 222, 333], fff: [777, 111, 878]}要求她渲染到table里面显示出来:想要的效果如下:
eeedddf
今天前端同事向我请教一问题,情况是这样的,我另外一后端同事给她返回了一串固定格式的字符:
{eee: [444, 555, 666], ddd: [666, 222, 333], fff: [777, 111, 878]}
要求她渲染到table里面显示出来:想要的效果如下:
eee | ddd | fff |
444 | 666 | 777 |
555 | 222 | 111 |
666 | 333 | 878 |
其实原理很简单:行列转换,定义两个二维数组就可以实现了:
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title></title> </head> <body> <input type="button" onclick="getText();" value="改变数组"/> </body> <script> function getText (){ let str = "{eee: [444', 555, 666], ddd: [666, 222, 333], fff: [777, 111, 878]}"; str = str.replace("{","").replace("]}",""); // console.info(str) let reg = new RegExp(": \\[","g"); str = str.replace(reg,","); // console.info(str) var arr = str.split("],"); var col = arr.length; // 列 let rows = 0; //行 var oldArr = new Array(); for(let i = 0;i<col;i++){ var arr1 = arr[i].split(","); rows = arr1.length; oldArr[i] =arr1; } console.info(oldArr) // 定义转换后的二维数组 var newArr = new Array(); for(let i = 0;i<rows;i++){ var arr = new Array(); for(let j = 0;j<col;j++){ arr.push(oldArr[j][i]) } newArr.push(arr) } console.info(newArr) } </script> </html>
运行结果: