亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

選擇以下劃線(_)開頭的所有對象鍵

選擇以下劃線(_)開頭的所有對象鍵

慕勒3428872 2019-04-18 18:15:38
我需要在下面的對象中創建一個包含所有鍵(而不是值)的數組,其中鍵以_下劃線開頭...在下面的代碼片段中,我試圖getSubscriptions()返回["_foo1", "_foo2"]let myObj = {  foo0: 'test',  _foo1: 'test',  _foo2: 'test',  foo3: 'test',};function getSubscriptions(obj, cb) {    // should return ["_foo1", "_foo2"]    let ret = ["foo1", "_foo2"];    return cb(ret);}getSubscriptions(myObj, (ret) => {    if (match(ret, ["_foo1", "_foo2"]) ) {         $('.nope').hide();        return $('.works').show();     }    $('.nope').show();    $('.works').hide();});function match(arr1, arr2) {    if(arr1.length !== arr2.length) { return false; }     for(var i = arr1.length; i--;) {         if(arr1[i] !== arr2[i]) { return false;}      }    return true; }body {    background: #333;    color: #4ac388;    padding: 2em;    font-family: monospace;    font-size: 19px;}.nope {  color: #ce4242;}.container div{  padding: 1em;  border: 3px dotted;}<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script><div class="container">    <div class="works">It Works!</div>    <div class="nope">    Doesn't Work...</div></div>
查看完整描述

4 回答

?
慕森王

TA貢獻1777條經驗 獲得超3個贊

您可以使用Object.keysArray.filter


let myObj = {

  foo0: 'test',

  _foo1: 'test',

  _foo2: 'test',

  foo3: 'test',

};


let result = Object.keys(myObj).filter(v => v.startsWith("_"));

console.log(result);


查看完整回答
反對 回復 2019-05-17
?
慕哥9229398

TA貢獻1877條經驗 獲得超6個贊

使用Object.keys帶filter,并檢查第一個字符是一個下劃線_:


let myObj = {

  foo0: 'test',

  _foo1: 'test',

  _foo2: 'test',

  foo3: 'test',

};


const res = Object.keys(myObj).filter(([c]) => c == "_");

console.log(res);


查看完整回答
反對 回復 2019-05-17
?
莫回無

TA貢獻1865條經驗 獲得超7個贊

替換您getSubscriptions()的如下

 function getSubscriptions(obj, cb) {
        let ret = Object.keys(myObj).filter(ele => ele.startsWith('_'))
        return cb(ret)
    }
  • Object.keys(yourObject):返回yourobject的鍵。

  • Array.filter(function):根據
    truthy條件從數組返回過濾值

  • String.startsWith:如果傳遞的字符串以('_')開頭,則返回true或false


查看完整回答
反對 回復 2019-05-17
  • 4 回答
  • 0 關注
  • 563 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號