討論三:循環(huán)差不多了吧,程序的優(yōu)化不僅僅是循環(huán)哦 在從一個(gè)序列、集合里剔除重復(fù)的工作,大家都有什么技巧呢? 比如要往一個(gè)序列里添加內(nèi)容,但是又不可以是這個(gè)序列里已經(jīng)有的,也就是說保證這個(gè)序列里的內(nèi)容是不重復(fù)的, 最常見的是數(shù)組,加入很方便,push進(jìn)去,但是要判斷是否重復(fù)了,就很麻煩,一般都是用一個(gè)for遍歷,逐一對(duì)比,但是每push一次都要先做個(gè)循環(huán)判斷,就非常之慢,于是改用object, var xxx={aaa:1,abc:1,ccc:1}; 那我在新加入的時(shí)候只要判斷if(xxx['ddd']!=1)xxx['ddd']=1,不必再遍歷 要取得整個(gè)序列也很方便,for(var i in xxx)trace(i+'='+xxx[i])
讓高手見笑了
回帖一: 這個(gè)做法實(shí)在事太好了!思想不錯(cuò),完全可以避免數(shù)組歷遍。 在flash里面完全適用,如果對(duì)于c++這些需要數(shù)組預(yù)定義的 語言的話,就要改一下了。不過思想方面應(yīng)該繼承。 佩服佩服
回帖二: 能用object的“鍵-值”查詢的地方當(dāng)然應(yīng)該盡量使用,flash里的數(shù)組實(shí)在太慢了。 一個(gè)最有說服力的例子就是,如果要遍歷一個(gè)數(shù)組,比如給所有的項(xiàng)賦值,在沒有操作順序的要求下,用for(...in...)要比for(...;...;...)快的多。這就是因?yàn)閒or in在flash執(zhí)行的時(shí)候采用的是先建立“鍵-值”枚舉表,然后再循環(huán)的緣故。
回帖三: 如果插入的是字符串的話,這個(gè)方法最好了 不過如果插入的是數(shù)字的話,連標(biāo)標(biāo)簽也用不到 例如插入一個(gè)數(shù)num 直接if(xxx[num]==1)就行了 利用了flash中數(shù)組可以不連續(xù)賦值,沒被賦值地元素為undefined這一特性 嗬嗬,其實(shí)道理和時(shí)間復(fù)雜度都是一樣的 不過不知道這樣會(huì)不會(huì)使空間復(fù)雜度增大?
原貼地址:http://www.95time.cn/bbs/NewsDetail.asp?id=1057820 仍在討論中,敬請(qǐng)關(guān)注.
本文鏈接:http://www.95time.cn/tech/multimedia/2003/481.asp
出處:藍(lán)色理想
責(zé)任編輯:handmade
上一頁(yè) 討論二 下一頁(yè)
◎進(jìn)入論壇Flash專欄版塊參加討論
|