<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                >[success] # 30s Object-- 查(一) ~~~ 1.本章節代碼通過整理30s 項目中數組篇章知識點,對涉及對象查詢的片段整理 ~~~ >[info] ## 通過vaule 查找匹配的key ~~~ 1.想在有個想已知對象中的value,想找到符合這個value 所有key,舉個例子 { Leo: 20, Zoey: 21, Jane: 20, } 想找到年齡是20的人的名字(也就是20作為value 對應的所有key) ~~~ [find-keys](https://www.30secondsofcode.org/js/s/find-keys) >[danger] ##### 代碼實現 ~~~ 1.代碼思路先通過' Object.keys' 獲取所有key的一個數組,再用數組過濾方法'filter'過濾找到符合key ~~~ ~~~ const log = console.log const findKeys = (obj,val)=> Object.keys(obj).filter(keys=>obj[keys] === val) const ages = { Leo: 20, Zoey: 21, Jane: 20, }; log(findKeys(ages, 20)) ~~~ >[danger] ##### findKey 只想找到一個符合 [find-key](https://www.30secondsofcode.org/js/s/find-key) ~~~ 1.這里就采用find方法,這樣就能獲取一個 ~~~ ~~~ const log = console.log const findKey = (obj, fn) => Object.keys(obj).find(key => fn(obj[key])); log(findKey( { barney: { age: 36, active: true }, fred: { age: 40, active: false }, pebbles: { age: 1, active: true } }, x => x['active'] )) // barney ~~~ >[danger] ##### 這個系列類似的文章 [從后找到第一個符合 -- find-last-key](https://www.30secondsofcode.org/js/s/find-last-key) >[info] ## 查出第一個符合的指定key的值 ~~~ 1.當有一個對象時候,想查出第一個符合的指定key的值舉個例子 { name:'1', personInfo:{ name:'2' } } 找到name 值,因為要查到一個符合name 為key 的值得到結果是 '1' ~~~ [dig](https://www.30secondsofcode.org/js/s/dig) >[danger] ##### 30s ~~~ 1.使用in運算符檢查中是否target存在obj。 2.如果找到,則返回的值obj[target]。 3.否則,使用Object.values(obj)和Array.prototype.reduce()遞歸地調用dig每個嵌套對象, 直到找到第一個匹配的鍵/值對。 4.這里面的一個小思維,如果是我第一次寫我可能直接是for...in 循環,本質上第一層可以直接通過 'in' 來找,如果in 沒有找到符合的key,通過'Object.values'直接獲取其他需要查找值。 ~~~ ~~~ const log = console.log const dig = (obj,target) => target in obj ? obj[target] : Object.values(obj).reduce((acc,val)=>{ if (acc !== undefined) return acc; // 主要剩下查找的值 不是Object,說明沒有要查找的必要了舉個例子 // {info:'我是信息',infoObj:{...}} 這個對象中想找name字段 // info不是name字段,并且info對應的value是個字符串沒有接下來需要 // 探查其內部本身沒必要因此這里遞歸觸發條件是Object if (typeof val === 'object') return dig(val, target); },undefined) const data = { level1: { level2: { level3:{ level2: { level3: 'some data' } } } }, level12: { level21: { level31: 'some data31' } } } log(dig(data, 'level3')) // { level2: { level3: 'some data' } } log(dig(data, 'level31')) // 'some data31' log(dig(data, 'level4')) // undefined ~~~ >[info] ## 直接看系列 [迭代對象的所有自身屬性,為每個對象運行一個回調](https://www.30secondsofcode.org/js/s/for-own)
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看