简介:
今天前端同事向我请教一问题,情况是这样的,我另外一后端同事给她返回了一串固定格式的字符:{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>运行结果:



