<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)前位置: 首頁 - 科技 - 知識百科 - 正文

        JS解惑之Object中的key是有序的么

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

        JS解惑之Object中的key是有序的么

        JS解惑之Object中的key是有序的么:當(dāng)我們使用for/in遍歷一個Object對象的時候,打印的結(jié)果是否按key的順序打印出來呢? 答案是:不一定。 背景 最近在做一個項目的時候,遇到這樣一個需求: 一個下拉列表中有3個固定選項,包括:-1:全部;0:正常;1:失效。 于是,我就定義了一個對象
        推薦度:
        導(dǎo)讀JS解惑之Object中的key是有序的么:當(dāng)我們使用for/in遍歷一個Object對象的時候,打印的結(jié)果是否按key的順序打印出來呢? 答案是:不一定。 背景 最近在做一個項目的時候,遇到這樣一個需求: 一個下拉列表中有3個固定選項,包括:-1:全部;0:正常;1:失效。 于是,我就定義了一個對象

        當(dāng)我們使用for/in遍歷一個Object對象的時候,打印的結(jié)果是否按key的順序打印出來呢?

        答案是:不一定。

        背景

        最近在做一個項目的時候,遇到這樣一個需求:

        一個下拉列表中有3個固定選項,包括:-1:全部;0:正常;1:失效。

        于是,我就定義了一個對象,然后循環(huán)這個對象,把結(jié)果放到 <option> 上面:

        var obj = {
         '-1': '全部',
         '0' : '正常',
         '1' : '失效'
        };
        
        <!-- Vue代碼片段 -->
        <select>
         <option v-for="(item, key) in obj" :value="key">{{item}}</option>
        </select>
        
        <!-- 結(jié)果卻是: -->
        <!-- 0 正常 -->
        <!-- 1 失效 -->
        <!-- -1 全部 -->
        
        

        于是就有了今天這篇文章,且看下文。

        解惑

        Object的key的排序規(guī)則到底是什么樣子的呢?答案是:

        如果key是整數(shù)(如:123)或者整數(shù)類型的字符串(如:“123”),那么會按照從小到大的排序。除此之外,其它數(shù)據(jù)類型,都安裝對象key的實際創(chuàng)建順序排序。

        var obj = {
         '-1': '全部',
         '0' : '正常',
         '1' : '失效'
        };
        for (let key in obj) {
         console.log(key, obj[key]);
        };
        // result
        // 0 正常
        // 1 失效
        // -1 全部
        

        另外,如果key中除了整數(shù)或者整數(shù)類型的字符串外,還含有其它數(shù)據(jù)類型,則整數(shù)放在最前面,比如:

        var obj = {
         'a': 111,
         '我' : 222,
         '1' : 333,
         '1.3': 444,
         '3': 555
        };
        for (let key in obj) {
         console.log(key, obj[key]);
        };
        // result
        // 1 333
        // 3 555
        // a 111
        // 我 222
        // 1.3 444
        

        解決

        那還是上面的問題,我如何讓對象按key的順序輸出呢?答案是:

        將key轉(zhuǎn)換成非整數(shù)類型的字符串,使用的時候再還原。

        如果全部是類整數(shù)的key,則可以這么做:

        // 每個key后面加.轉(zhuǎn)換成字符串
        var obj = {
         '-1.': '全部',
         '0.' : '正常',
         '1.' : '失效'
        };
        for (let key in obj) {
         // ~~ 表示轉(zhuǎn)換成整數(shù),這樣上面的key又還原成了-1/0/1
         console.log(~~key, obj[key]);
        };
        // result
        // -1 全部
        // 0 正常
        // 1 失效
        

        但是,如果key是由各種數(shù)據(jù)類型混合的,那就不能轉(zhuǎn)換成整數(shù)了,可以這么做:

        // 每個key前面加.轉(zhuǎn)換成字符串
        var obj = {
         '.a': 111,
         '.我' : 222,
         '.1' : 333,
         '.1.3': 444,
         '.3': 555
        };
        for (let key in obj) {
         // 從第1個字符取原始的key
         console.log(key.substring(1), obj[key]);
        };
        // result
        // a 111
        // 我 222
        // 1 333
        // 1.3 444
        // 3 555
        

        最后

        回歸到我最初遇到的問題,那就這么解決了:

        var obj = {
         '-1.': '全部',
         '0.' : '正常',
         '1.' : '失效'
        };
        <select>
         <option v-for="(item, key) in obj" :value="~~key">{{item}}</option>
        </select>
        

        參考

        Objects#ordered-like-an-object

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

        文檔

        JS解惑之Object中的key是有序的么

        JS解惑之Object中的key是有序的么:當(dāng)我們使用for/in遍歷一個Object對象的時候,打印的結(jié)果是否按key的順序打印出來呢? 答案是:不一定。 背景 最近在做一個項目的時候,遇到這樣一個需求: 一個下拉列表中有3個固定選項,包括:-1:全部;0:正常;1:失效。 于是,我就定義了一個對象
        推薦度:
        標(biāo)簽: js 序的 key
        • 熱門焦點

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 亚洲人精品亚洲人成在线| 亚洲一区精品视频在线| 一级做受视频免费是看美女 | 国产亚洲精久久久久久无码| 美女视频黄频a免费观看| 免费真实播放国产乱子伦| 亚洲.国产.欧美一区二区三区| 免费毛片在线视频| 精品在线视频免费| 亚洲人成影院在线观看| 中国极品美軳免费观看| 亚洲成A人片在线观看无码不卡 | 亚洲人成在线播放| 三年片在线观看免费大全| 国产亚洲玖玖玖在线观看| 国产精品久久香蕉免费播放| 国产午夜亚洲精品不卡免下载| 免费一级毛片在播放视频| 久久精品成人免费观看97| 亚洲AV成人精品网站在线播放| 最近中文字幕无免费| 亚洲一区欧洲一区| 四虎永久免费观看| a国产成人免费视频| 亚洲精品无码久久毛片波多野吉衣| 丁香花在线观看免费观看| 一级毛片在播放免费| 久久久久亚洲av无码专区喷水| 最新中文字幕免费视频| 一级特黄色毛片免费看| 亚洲人成电影在在线观看网色| 女人18毛片水真多免费看| 一本到卡二卡三卡免费高| 亚洲精品美女久久久久| 免费在线视频一区| 182tv免费视视频线路一二三| 国产精品国产亚洲区艳妇糸列短篇 | 99视频有精品视频免费观看| 亚洲狠狠婷婷综合久久蜜芽| 亚洲精品无码久久一线| 成年女人午夜毛片免费看|