选定元素slice()
slice() 方法可从已有的数组中返回选定的元素,类似于python的切片。
语法:
arrayObject.slice(start,end)
参数:
start:必需。规定从何处开始选取。如果是负数,那么它规定从数组尾部开始算起的位置。
end:可选。规定从何处结束选取。如果没有指定该参数,那么切分的数组包含从start到数组结束的所有元素。如果是负数,那么它规定从数组尾部开始算起的位置。
注意:
1.该方法并不会修改数组,而是返回一个子数组。
2.String.slice() 与 Array.slice() 相似。
数组排序sort()
sort()方法使数组中的元素按照一定的顺序排列。
语法:
arrayObject.sort(方法函数)
参数:
方法函数:可选。规定排序顺序。必须是函数。
1.如果不指定<方法函数>,则按unicode码顺序排列。
2.如果指定<方法函数>,则按<方法函数>所指定的排序方法排序。
注意:
该函数要比较两个值,然后返回一个用于说明这两个值的相对顺序的数字。比较函数应该具有两个参数 a 和 b,其返回值如下:
若返回值<=-1,则表示 A 在排序后的序列中出现在 B 之前。
若返回值>-1 && <1,则表示 A 和 B 具有相同的排序顺序。
若返回值>=1,则表示 A 在排序后的序列中出现在 B 之后。
示例:
<script>
"use strict";
var myarr = ['12', '23', '213', '32', '213', '-12', 321, 3];
document.write("默认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>
输出结果为:
默认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
数组的in运算符
in运算符用于检测某个元素是否在集合中。现在有一个数组var arr = ['a', 'b', 'c']
。在python中,'a' in arr
返回值肯定为true
,但是在JS中,中,'a' in arr
返回值却是false
。
这是为什么呢?原来,在JS中,数组也是一种对象,存在键值对,例如:Object.keys(arr)
的返回值为["0", "1", "2"]
。而in在JS中是用来检查键的,所以'a' in arr
返回值是false
,0 in arr
返回值为true
。