Visual Studio Code是一套微軟主導且open-source的開發工具,不但可以安裝許多插件,原生又支援GIT、DEBUGGER模式。而且IDE也相當美觀!其中有幾個快速鍵,個人推薦值得學下來!不但可以大幅提升開發時的流暢度,也可以減少按CTRL + C / CTRL + V 的次數!

閱讀全文 »

JavaScript在一般的陣列中,可以直接使用filter、map來遍歷元素並搜尋或取得資料
但在object,就無法使用這些方便的函式了!
尤其當資料內容又是以物件型式儲存在陣列裡面
兩個東西結合在一起的時候真的是會寫到一團亂不知道自己在寫什麼東西XD
花了不少時間總算寫了個應該….還算是精簡的寫法QQ

需求:在一個搜尋框輸入關鍵字,可搜尋表格內的每一欄位,並即時呈現結果

[> DEMO <](https://codepen.io/windclara/pen/MraYRZ?editors=1010)

由於我來源資料是儲存在nedb裡面(註:nedb為一輕量化的單機版mongoDB,可視為nosql版的sqlite)

nedb中每一筆資料是一個物件,查詢出來後的所有結果回傳成一組陣列
就會得到如下的資料結構:

dbData = [
 {id:0001,name:'王小明',phone:0912345678},
 {id:0002,name:'劉得滑',phone:0987654321},
 {id:0003,name:'周潤花',phone:0978123456},
 {id:0004,name:'林志零',phone:0955111222}];

搜尋功能的程式碼:

function search(searchValue){
    let searched = dbData.map(obj => {
        if ( Object.keys(obj).some( property => obj[property].toString().indexOf(searchValue) != -1 ) )
          return obj;
      });
      return searched.filter(obj => obj != undefined);
}
//demo網頁我使用vue,所以demo網頁裡的寫法會略有不同
//為方便您使用,文中以function呈現

說明:

  1. 用陣列提供的map函式,遍歷出每筆資料
  2. 由於object無map、filter函式,使用Object.keys取得object裡的每個property以遍歷每一object裡的內容。而Object提供some函式,只要其中一筆內容符合則回傳true
  3. 接著使用obj[property] 取得該物件屬性內的值。會得到:0001,王小明,0912345678,0002,劉得滑….等每一property裡的值。
  4. 將資料內容轉換成字串,使用indexOf判斷是否符合,若符合則回傳整個物件
  5. 將searchValue console.log出來的話,會發現是一陣列包含符合條件的物件,不符合條件的則回傳undefined。得到內容長這樣(以搜尋王小明為例)
    [{id:0001,name:'王小明',phone:0912345678},undefined,undefined,undefined]
    //資料內容總長有幾筆不合條件,就會有幾個undefined
  6. 最後在用filter 過濾掉undefined,就可以得到我們想要的結果!

參考資料

JavaScript取出陣列重複/不重複值的方法
Quickly filter an object by keys

一、在組織組態→集線傳輸→新增傳輸規則

設定如下圖

上圖中:

  1. 是「條件」頁面的「來自人員」,或可選擇「來自通訊清單的成員」,即限制一群成員
  2. 是「條件」頁面的「傳送給組織內部或外部的使用者」,選擇「在組織外」
  3. 是下一步「動作」條件設定中的「將拒絕訊息傳送給有增強狀態碼的寄件者」

可設定錯誤訊息&錯誤代碼(皆必填)。錯誤代碼填上任一代碼即可。

二、設定完畢存檔後按一下F5重新整理,使傳輸規則生效。

三、測試發送郵件給外部收件者:

收到系統阻檔發送的訊息,並顯示先前設定之錯誤訊息&代碼。如下圖所示:

打開終端機,輸入下列指令

sudo spctl --master-disable

系統偏好設定 > 安全性與隱私權
macDisappear

首先得感謝wesbos製作的JavaScript30,以簡單又有趣的例子引入,並可以快速了解JavaScript的特性及常用功能!
註冊後可免費觀看,且有英文字幕,就算真的都聽不懂英文,邊看影片邊暫停key程式碼,也可以知道在做什麼。對於想入門JavaScript的朋友們,不可錯過!
建議稍微有一些簡單基礎後再來觀看,不然可能會一頭霧水
所謂簡單基礎,指的是知道for、if等,也就是對於程式語言有基本的認識,就差不多足夠了!
至於一些JavaScript的特性,比如閉包、callback、暱名函數,就需要輔以其他參考資料了!
扣除這些比較複雜的特性之外,其他像是一些對於html的操作,籍由JavaScript30快速入門,會是一個很好的起始點!

關於JavaScript30的筆記,很多人也做了精彩的筆記可供參考
PJCHENder
github/soyaine –中國人整理的筆記

順便附上個人當初學習時不熟悉所整理的筆記
也方便自己未來回來查詢
筆記