VIP免费

js实现行列转换

精品 行列转换jquery 原创
33
DEMO程序园
程序猿 2020-07-14
积分:0

简介:

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

运行结果:

15947276566433485.png

评论
最新发布
2024-05-19
2024-05-19
2024-05-19
2024-05-19
2024-05-19
2024-05-19
2024-05-19
2024-05-19
2024-05-19
2024-05-18
layui

微信扫码关注DEMO程序园公众号

本周热门
1989
1631
1389
1337
1280
1062
1042
996
869
516
热门下载
27
20
19
14
14
12
12
12
12
11