<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
        主站蜘蛛池模板: 不卡精品国产_亚洲人成在线| 免费萌白酱国产一区二区| 久爱免费观看在线网站| 在人线av无码免费高潮喷水| 亚洲成年人啊啊aa在线观看| 亚洲精品自在线拍| 一本岛v免费不卡一二三区| 免费在线观看h片| 婷婷亚洲天堂影院| 亚洲六月丁香六月婷婷蜜芽| 国产成人无码精品久久久久免费 | 久久精品亚洲精品国产色婷| 国产精品日本亚洲777| 亚欧免费视频一区二区三区| 亚洲黄网站wwwwww| 国产又黄又爽胸又大免费视频| 成年女性特黄午夜视频免费看| 亚洲AV永久无码精品一百度影院| 理论片在线观看免费| 久久久久国产精品免费免费搜索| 久久伊人久久亚洲综合| 免费一区二区无码视频在线播放| a级毛片无码免费真人| 亚洲AV无码XXX麻豆艾秋| 免费三级毛片电影片| 97亚洲熟妇自偷自拍另类图片| 9420免费高清在线视频| 亚洲精品自在在线观看| 久青草国产免费观看| 亚洲国产精品无码久久久秋霞2| 大片免费观看92在线视频线视频 | 国产成人综合亚洲亚洲国产第一页| 丁香婷婷亚洲六月综合色| 久久国产精品成人片免费| 亚洲一级视频在线观看| 四虎永久在线精品免费观看视频| 亚洲午夜成人精品无码色欲| 无码日韩精品一区二区免费| 特级av毛片免费观看| 亚洲成年轻人电影网站www| 在线A级毛片无码免费真人|