選定元素slice()
slice() 方法可從已有的數(shù)組中返回選定的元素萝毛,類似于python的切片膝但。
語法:
arrayObject.slice(start,end)
參數(shù):
start:必需。規(guī)定從何處開始選取。如果是負(fù)數(shù),那么它規(guī)定從數(shù)組尾部開始算起的位置。
end:可選谴分。規(guī)定從何處結(jié)束選取。如果沒有指定該參數(shù)镀脂,那么切分的數(shù)組包含從start到數(shù)組結(jié)束的所有元素牺蹄。如果是負(fù)數(shù),那么它規(guī)定從數(shù)組尾部開始算起的位置薄翅。
注意:
1.該方法并不會(huì)修改數(shù)組沙兰,而是返回一個(gè)子數(shù)組。
2.String.slice() 與 Array.slice() 相似匿刮。
數(shù)組排序sort()
sort()方法使數(shù)組中的元素按照一定的順序排列僧凰。
語法:
arrayObject.sort(方法函數(shù))
參數(shù):
方法函數(shù):可選。規(guī)定排序順序熟丸。必須是函數(shù)训措。
1.如果不指定<方法函數(shù)>,則按unicode碼順序排列光羞。
2.如果指定<方法函數(shù)>绩鸣,則按<方法函數(shù)>所指定的排序方法排序。
注意:
該函數(shù)要比較兩個(gè)值纱兑,然后返回一個(gè)用于說明這兩個(gè)值的相對(duì)順序的數(shù)字呀闻。比較函數(shù)應(yīng)該具有兩個(gè)參數(shù) a 和 b,其返回值如下:
若返回值<=-1潜慎,則表示 A 在排序后的序列中出現(xiàn)在 B 之前捡多。
若返回值>-1 && <1,則表示 A 和 B 具有相同的排序順序铐炫。
若返回值>=1垒手,則表示 A 在排序后的序列中出現(xiàn)在 B 之后。
示例:
<script>
"use strict";
var myarr = ['12', '23', '213', '32', '213', '-12', 321, 3];
document.write("默認(rèn)unicode排序:" + myarr.sort() + "<br>");
document.write("升序排列:" + myarr.sort(sort_acsend) + "<br>");
document.write("降序排列:" + myarr.sort(sort_decsend) + "<br>");
function sort_acsend(a, b) {
return a - b;
}
function sort_decsend(a, b) {
return b - a;
}
</script>
輸出結(jié)果為:
默認(rèn)unicode排序:-12,12,213,213,23,3,32,321
升序排列:-12,3,12,23,32,213,213,321
降序排列:321,213,213,32,23,12,3,-12
數(shù)組的in運(yùn)算符
in運(yùn)算符用于檢測某個(gè)元素是否在集合中〉剐牛現(xiàn)在有一個(gè)數(shù)組var arr = ['a', 'b', 'c']
科贬。在python中,'a' in arr
返回值肯定為true
鳖悠,但是在JS中榜掌,中优妙,'a' in arr
返回值卻是false
。
這是為什么呢憎账?原來套硼,在JS中,數(shù)組也是一種對(duì)象鼠哥,存在鍵值對(duì)熟菲,例如:Object.keys(arr)
的返回值為["0", "1", "2"]
。而in在JS中是用來檢查鍵的朴恳,所以'a' in arr
返回值是false
,0 in arr
返回值為true
允蚣。