關於party_bid專案**的重構,就我目前的了解做一基礎的小結。
這裡我主要講如何縮減**。
關於縮減**,現在我用的主要是underscore的一些方法。
1.用find方法去除for迴圈巢狀if判斷語句
看下面一段**:
for (var n = 0; n < activities.length; n++)我們可以這樣替換:
_.find(activities,function(activity)).status = 0; //這樣我們就通過find找到對應的物件並進行改值接下來我們了解一下find方法:
var even = _.find([1, 2, 3, 4, 5, 6], function(num));講到find,就要講講與它相似的filter://find會返回遍歷陣列找到符合條件的第乙個物件元素,不一定會遍歷完整個陣列,上面的式子會返回被2整除的第乙個數2
var evens = _.filter([1, 2, 3, 4, 5, 6], function(num));filter我們也可以用來代替某些特定功能的for迴圈。// filter會返回乙個新陣列,像上面的式子會返回 [2, 4, 6],filter它與find的不同是它會遍歷完整個陣列,找出資料中所有符合條件的元素
2.用map方法去除一些for迴圈
看乙個for迴圈:
var a = [1,2,3,4]用map代替:for (var i = 0;i < a.length;i++)
_.map(a,function(num))3.去除一些if
比如這樣的乙個if:
var a;可以寫成這樣:if(activities.length)
if(!activities.legth)
var a = activities.length ? 1 : 0;4.every()和some()
every()和some()方法是陣列的邏輯判定:它們對陣列元素應用指定的函式進行判定,返回true和false。
every()是當且僅當陣列中的所有元素呼叫判定函式都返回true,它才返回true。
some()是當陣列中至少有乙個元素呼叫判定函式返回true,它就會返回true。
a = [1,2,3,4,5];還有很多方法,繼續學習,繼續總結,重構的越來越好。a.every(function(x) ) //返回true
a.every(function(x) ) //返回false
a.some(function(x) ) //返回false
a.some(function(x) ) //返回ture
party bid第二張卡總結
第二張卡主要涉及簡訊的收發,對收到的簡訊進行處理,提取有用資訊。以下是對第二張卡的一些方法總結。收到簡訊是先要對簡訊進行去空格處理,而後查詢是否包含關鍵字,這裡用到的方法如下 message.replace s g,message.search bm i 需要說明的是replace s g,中 s ...
乙個專案工程的重構小結
首次看到移交到我手上的c 工程那個7千多行 的檔案時,既佩服又擔心,前輩的構架能力讓我甘拜下風,同時擔心能不能勝任。在研究原始碼的時候,也解決幾個線上遺留的問題。愈發覺得有重構的必要 因為這將是我負責的 不完全重構 那叫重寫,一是否定了前輩的功勞,二是接觸不久業務不熟,風險大。因此總體原則是逐步重構...
重構之維 關於重構及《重構》的隨想
重構之維 關於重構及 重構 的隨想 重構 究竟重構了什麼?不止一次地,我聽到我們這個行業裡的大師們對重構技術提出 至少是 置疑 那是我們過去十五年裡一直在做的事 我從 上世紀 70年代就已經開始這樣做了 unix上的黑客們一直都是這樣做的 這些說辭讓我很有興趣探其究竟。在這本 重構 裡,martin...