国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > JS > 正文

JavaScript數組的快速克隆(slice()函數)和數組的排序、亂序和搜索

2024-09-06 12:44:02
字體:
來源:轉載
供稿:網友
JavaScript中對變量的操作都是通過引用方式,而對數組也一樣。
前兩天想要對一個數組進行復制,一直苦于找不到辦法(遍歷的方法俺是絕對不采用的)

無意中拿起《JavaScript權威指南》翻了翻數組的操作函數,發現了slice()函數。

slice()原來是用來截取數組中的一部分,這里我用它來復制數組,它的格式如下:
array.slice(start, end)
如果省略了end參數,則切分的數組包含從start開始到數組結束的所有元素。 

現在要用它來復制數組,就一行,呵呵:
var newArray=oldArray.slice(0); 



所有這些功能,用一個sort()就可以完成了。

1. 排序:
默認的sort()按字符編碼排序的:

[Ctrl+A 全選 注:如需引入外部Js需刷新才能執行]
現在要讓它按照數值大小排序:

[Ctrl+A 全選 注:如需引入外部Js需刷新才能執行]
只要傳遞一個比較函數給sort就可以了,如果比較函數的值小于0,則表示a必須出現在b前面,否則在b后面。
2. 亂序:
讓比較函數隨機傳回-1或1就可以了:

[Ctrl+A 全選 注:如需引入外部Js需刷新才能執行]
3. 搜索:
用sort()來玩搜索還蠻新鮮的,呵呵,看看是怎么玩的吧。
我現在要把數組里含有字母'a'的元素全部找出來,如果沒有sort(),似乎只能用遍歷了,遍歷的效率…那個叫恐怖啊!!具體做法如下:

[Ctrl+A 全選 注:如需引入外部Js需刷新才能執行]
這樣就把數組中含有字母'a'的元素全部放到數組前面啦,再經過一些簡單的處理,就可以輸出搜索結果了。
用slice來拷貝數組的確是一個很好的方法,而且實際上用得也會比較多,不過效率和遍歷相比很難說優劣,因為我們誰也不知道js的slice是怎么實現的,不過推測起來應該要高效一些,更重要的是寫起來簡單多了。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 东安县| 固镇县| 凯里市| 琼海市| 军事| 通榆县| 潜江市| 盐源县| 瑞安市| 延吉市| 耒阳市| 金沙县| 桃园县| 乌拉特后旗| 通化县| 甘德县| 芒康县| 苏尼特右旗| 湄潭县| 无锡市| 西平县| 合作市| 龙江县| 高唐县| 应用必备| 山阴县| 安福县| 永康市| 贺兰县| 正定县| 郧西县| 东宁县| 独山县| 土默特左旗| 宁蒗| 扎兰屯市| 宣城市| 白城市| 连州市| 玉溪市| 清原|