<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專題關(guān)鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
        當(dāng)前位置: 首頁 - 科技 - 知識百科 - 正文

        vue實(shí)現(xiàn)行列轉(zhuǎn)換的一種方法

        來源:懂視網(wǎng) 責(zé)編:小采 時間:2020-11-27 21:52:36
        文檔

        vue實(shí)現(xiàn)行列轉(zhuǎn)換的一種方法

        vue實(shí)現(xiàn)行列轉(zhuǎn)換的一種方法:行列轉(zhuǎn)換是一個老生常談的問題,這幾天逛知乎有遇到了這個問題。一個前端說,拿到的數(shù)據(jù)是單列的需要做轉(zhuǎn)換才能夠綁定,折騰了好久才搞定,還說這個應(yīng)該后端直接出數(shù)據(jù),不應(yīng)該讓前端折騰。 這個嘛,行列轉(zhuǎn)換在后端也不是很好解決的問題,而且還有一個性能的
        推薦度:
        導(dǎo)讀vue實(shí)現(xiàn)行列轉(zhuǎn)換的一種方法:行列轉(zhuǎn)換是一個老生常談的問題,這幾天逛知乎有遇到了這個問題。一個前端說,拿到的數(shù)據(jù)是單列的需要做轉(zhuǎn)換才能夠綁定,折騰了好久才搞定,還說這個應(yīng)該后端直接出數(shù)據(jù),不應(yīng)該讓前端折騰。 這個嘛,行列轉(zhuǎn)換在后端也不是很好解決的問題,而且還有一個性能的

        行列轉(zhuǎn)換是一個老生常談的問題,這幾天逛知乎有遇到了這個問題。一個前端說,拿到的數(shù)據(jù)是單列的需要做轉(zhuǎn)換才能夠綁定,折騰了好久才搞定,還說這個應(yīng)該后端直接出數(shù)據(jù),不應(yīng)該讓前端折騰。

        這個嘛,行列轉(zhuǎn)換在后端也不是很好解決的問題,而且還有一個性能的問題,綜合考慮,我還是覺得應(yīng)該由前端進(jìn)行行列轉(zhuǎn)換。光說不練假把式,所以拿出來代碼僅作為拋磚引玉,供大家參考一下,如果有更好的方法,歡迎一起來探討。

        1、模板設(shè)計(jì)。

         <div id="app">
         <table class="table_default1" style="width: 400px;">
         <tr>
         <th v-for="item in tableHeader">
         {{item}} 
         </th>
         </tr>
         <tr v-for="tr in tableBody">
         <td v-for="td in tr">
         {{td}}
         </td>
         </tr>
         </table>
         </div>

        這個比較簡單,先遍歷 tableHeader    把表頭循環(huán)出來。

        然后在雙重遍歷,tableBody 提供行數(shù)據(jù),然后在遍歷出來td。

        這里沒有任何與業(yè)務(wù)邏輯相關(guān)的代碼,也就是說這個模板可以適合任何行列轉(zhuǎn)換的需求??梢越壎ǔ鰜?m行n列  的表格。

        2、然后是vue實(shí)例部分 

         var form = new Vue({
         el: "#app",
         data: {
         tableHeader: { }, //綁定表頭
         tableBody: { } //綁定數(shù)據(jù)
         },
         created: function () {
         //代碼在下面
         }
         });

        這里data的兩個成員都是空的,因?yàn)槠浣Y(jié)構(gòu)要根據(jù)后臺傳遞過來的數(shù)據(jù)決定,所以這里就不寫了,當(dāng)然 tableHeader 和 tableBody 還是要先寫一下占個位置,否則模板的地方就沒法寫了。

        不過還是先寫一個結(jié)構(gòu)參考一下,否則下面的代碼估計(jì)看著會比較暈

        2.1  tableHeader  的結(jié)構(gòu)。這個很簡單了。

         {
         name: "姓名",
         studentID: "學(xué)號",
         "數(shù)學(xué)": "數(shù)學(xué)",
         "物理": "物理",
         "英語": "英語",
         "語文": "語文",
         }

        2.2  tableBody  的結(jié)構(gòu)。這里并沒有使用數(shù)組,因?yàn)閿?shù)組不好定位,用key的方式可以很方便的定位,key值的規(guī)律就是 標(biāo)識 + 學(xué)號,比如s1。純數(shù)字作為key,可能會有點(diǎn)問題,所以就加了個標(biāo)識。

        對了,可以多一個科目的,比如“物理”,只要tableHeader里面有就可以。

        {
         s1: {
         studentID: 1,
         name: "小紅", 
         數(shù)學(xué): 200,
         語文: 190,
         英語: 191
         }
         s2: {
         studentID: 2, 
         name: "小明", 
         數(shù)學(xué): 193, 
         語文: 187,
         英語: 188,
         物理: 99
         }
         s3: {
         studentID: 3, 
         name: "韓梅梅", 
         數(shù)學(xué): 194, 
         語文: 199, 
         英語: 198
         }
        } 

        3、最后是轉(zhuǎn)換函數(shù)

        //得到測試數(shù)據(jù)
         var testdata = [
         {
         studentID: 0001,
         name: '小紅',
         subject: '數(shù)學(xué)',
         mark: 100
         }, {
         studentID: 0001,
         name: '小紅',
         subject: '語文',
         mark: 90
         }, {
         studentID: 0001,
         name: '小紅',
         subject: '英語',
         mark: 91
         }, {
         studentID: 0002,
         name: '小明',
         subject: '數(shù)學(xué)',
         mark: 93
         }, {
         studentID: 0002,
         name: '小明',
         subject: '語文',
         mark: 87
         }, {
         studentID: 0002,
         name: '小明',
         subject: '英語',
         mark: 88
         }, {
         studentID: 0002,
         name: '小明',
         subject: '物理',
         mark: 88
         }, {
         studentID: 0003,
         name: '韓梅梅',
         subject: '數(shù)學(xué)',
         mark: 94
         }, {
         studentID: 0003,
         name: '韓梅梅',
         subject: '語文',
         mark: 99
         }, {
         studentID: 0003,
         name: '韓梅梅',
         subject: '英語',
         mark: 98
         }
         ];
         //第一次遍歷,制作 tableHeader
         var th = {}
         th["studentID"] = '學(xué)號'; //固定列
         th["name"] = '姓名';
         //篩選科目
         var thKey = {}
         for (var i = 0; i < testdata.length; i++) {
         thKey[testdata[i].subject] = 1; //動態(tài)列
         }
         //把科目加到th里面 ,動態(tài)增加列
         for (var key in thKey) {
         th[key] = key;
         }
         this.tableHeader = th;
         //第二次遍歷,制作tr的行
         var tr = {};
         for (var i = 0; i < testdata.length; i++) {
         var d = testdata[i];
         tr['s' + d.studentID] = {
         studentID: d.studentID, //固定列
         name: d.name
         }
         }
         //第三次遍歷,添加科目的成績
         for (var i = 0; i < testdata.length; i++) {
         var d = testdata[i];
         tr['s' + d.studentID][d.subject] = d.mark + 100; //動態(tài)列
         }
         this.tableBody = tr;

        這個可以寫在 created 里面,當(dāng)然寫在其他地方也可以,只要把數(shù)據(jù)給過去就行。

        前面是給了一個測試數(shù)據(jù),數(shù)據(jù)結(jié)構(gòu)并不僅限于這樣,改成其他的業(yè)務(wù)也是可以的,只需要知道 studentID 是一個標(biāo)識列,確定有多少行。 name 是附帶的,有沒有都行,因?yàn)橛锌赡苤孛圆荒苡胣ame做標(biāo)識,要用學(xué)號。

        subject 是負(fù)責(zé)確定要增加多少列的,值相同的放到一列,不同的另起一列。

        mark 是每一行的分?jǐn)?shù),和 subject 是key value的關(guān)系,subject 是key, Mark是value,只不過這個變成了上下關(guān)系。subject在表頭,Mark在body里面。

        自我感覺注釋寫的還算可以的。如果有看不明白的,歡迎討論。

        最后效果圖一張

        總結(jié)

        以上所述是小編給大家介紹的vue實(shí)現(xiàn)行列轉(zhuǎn)換的一種方法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
        如果你覺得本文對你有幫助,歡迎轉(zhuǎn)載,煩請注明出處,謝謝!

        聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        vue實(shí)現(xiàn)行列轉(zhuǎn)換的一種方法

        vue實(shí)現(xiàn)行列轉(zhuǎn)換的一種方法:行列轉(zhuǎn)換是一個老生常談的問題,這幾天逛知乎有遇到了這個問題。一個前端說,拿到的數(shù)據(jù)是單列的需要做轉(zhuǎn)換才能夠綁定,折騰了好久才搞定,還說這個應(yīng)該后端直接出數(shù)據(jù),不應(yīng)該讓前端折騰。 這個嘛,行列轉(zhuǎn)換在后端也不是很好解決的問題,而且還有一個性能的
        推薦度:
        標(biāo)簽: 轉(zhuǎn)換 方法 VUE
        • 熱門焦點(diǎn)

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 亚洲日本一区二区一本一道| 成人免费无码大片a毛片软件| 中文字幕亚洲日本岛国片| 黑人粗长大战亚洲女2021国产精品成人免费视频 | 欧洲美女大片免费播放器视频| 国产大片免费观看中文字幕| 无码亚洲成a人在线观看| 国产真人无遮挡作爱免费视频 | 亚洲国产人成在线观看69网站| 久久亚洲免费视频| 久久精品国产亚洲av高清漫画| 日韩精品久久久久久免费| 久久精品国产亚洲AV高清热| 免费看h片的网站| 一区二区亚洲精品精华液| 日本视频免费在线| 一级毛片aaaaaa视频免费看| 亚洲成A∨人片在线观看不卡| 毛片无码免费无码播放 | 三上悠亚电影全集免费| 久久久久亚洲AV片无码| 成人免费AA片在线观看| 国产精品亚洲二区在线| 亚洲精品无码成人AAA片| 最近免费中文字幕大全高清大全1| 亚洲国产成人久久综合一区| 免费无码一区二区三区蜜桃大| 看免费毛片天天看| 亚洲欧洲日产国码无码久久99| 狼群影院在线观看免费观看直播| 亚洲日韩AV一区二区三区四区| 深夜国产福利99亚洲视频| 免费观看91视频| 亚洲日韩精品无码专区| AV在线亚洲男人的天堂| 美丽的姑娘免费观看在线播放 | 日韩免费高清一级毛片| 亚洲激情在线观看| 日本免费的一级v一片| 国产情侣久久久久aⅴ免费| 亚洲人成色777777老人头|