• <fieldset id="8imwq"><menu id="8imwq"></menu></fieldset>
  • <bdo id="8imwq"><input id="8imwq"></input></bdo>
    最新文章專題視頻專題問答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é)編:小采 時(shí)間:2020-11-27 21:57:35
    文檔

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

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

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

    答案是:不一定。

    背景

    最近在做一個(gè)項(xiàng)目的時(shí)候,遇到這樣一個(gè)需求:

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

    于是,我就定義了一個(gè)對象,然后循環(huán)這個(gè)對象,把結(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的實(shí)際創(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í)候再還原。

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

    // 每個(gè)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ù)了,可以這么做:

    // 每個(gè)key前面加.轉(zhuǎn)換成字符串
    var obj = {
     '.a': 111,
     '.我' : 222,
     '.1' : 333,
     '.1.3': 444,
     '.3': 555
    };
    for (let key in obj) {
     // 從第1個(gè)字符取原始的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)等問題請及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

    文檔

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

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

    最新推薦

    猜你喜歡

    熱門推薦

    專題
    Top
    主站蜘蛛池模板: 亚洲av午夜精品一区二区三区| 中文字幕无码精品亚洲资源网久久| 国产精品无码免费专区午夜| 国产精品视频一区二区噜噜| 偷拍精品视频一区二区三区| 在线精品视频播放| 国产精品vⅰdeoxxxx国产| 欧美久久久久久午夜精品| 91麻豆精品国产91久久久久久| 成人伊人精品色XXXX视频| 亚洲国产精品国自产拍AV| 精品无码人妻一区二区三区不卡| 国产成人精品免费视频网页大全| 人妻熟妇乱又伦精品视频| 亚洲精品无码久久毛片| 久久久WWW成人免费精品| 91嫩草亚洲精品| 欧美国产亚洲精品高清不卡| 国产精品丝袜一区二区三区| 久久精品亚洲中文字幕无码麻豆| 中文字幕一区二区三区日韩精品| 人妻无码久久精品| 欧美精品黑人粗大| 精品久久久久中文字| 国产精品伦理久久久久久| 亚洲国产精品国自产电影| 久久精品国产91久久综合麻豆自制 | 中文字幕精品视频在线| 蜜臀AV无码国产精品色午夜麻豆| 国产精品高清免费网站| 91精品国产综合久久四虎久久无码一级| 国产精品天天影视久久综合网| 国产精品99久久免费观看| 国精品午夜福利视频不卡| 久久99精品久久久久久动态图| 欧美午夜精品久久久久免费视| 在线精品自拍无码| 亚洲精品无码mv在线观看网站| 中文精品99久久国产| 亚洲精品白浆高清久久久久久| 亚洲综合国产精品第一页 |