indexOf,lastindexOf用来直接查找目标元素在数组中的索引。
indexOf用法: 目标数组.indexOf(要查找的元素) 或者 目标数组.indexOf(要查找的元素,查找的起始位置) //按索引从小到大查找,找到返回索引值
lastindexOf用法:目标数组.lastindexOf(要查找的元素) 或者 目标数组.lastindexOf(要查找的元素,查找的起始位置)//按索引从大到小查找,找到返回索引值
push用法:数组.push(元素);数组.push(元素1,元素2,…元素n) //在数组尾部新增一个或多个元素
unshift用法:数组.unshift(元素);数组.unshift(元素1,元素2,…元素n) //在数组头部新增一个或多个元素
pop用法:数组.pop() //将数组最后一个元素删除
shift用法:数组.shift() //将数组第一个元素删除,剩余元素索引值自动减1
splice的四种用途:
(1)数组.splice(删除点索引,要删除的元素数目,新元素1,新元素2,…新元素n) //从数组某位置开始,删除被指定数目的元素,并插入一些新元素。
(2)数组.splice(删除点索引,要删除的元素数目) //删除数组中某位置之后的几个元素
(3)数组.splice(删除点索引) //删除数组中某位置之后的所有元素
(4)数组.splice(删除点索引,0,新元素1,新元素2…新元素n) //在数组某位置之后,插入新元素
—-{删除点的索引可以是负值,表示数组从尾部倒数的位置。比如,索引为-3,指的是数组倒数第三个元素}
slice可以获取数组中一段连续的元素,而不改变原有数组的内容。也就是说从原有数组复制一部分数组出来组成一个新数组。
用法:数组.slice(起始索引,终点索引) //返回值是截取的元素组成的新数组,新中包括起点索引的元素,但不包括终点索引的元素。
数组.slice(起始索引) //返回的是从起始点索引开始到数组终点的这段元素
—-{起始点和终点的索引可以是负值,表示数组从尾部倒数的位置。比如,索引为-3,指的是数组倒数第三个元素}
concat将多个元素或数组拼成一个新的数组。
用法: 数组.concat(参数1,参数2,…参数n) //concat会将数组分开成各个元素按顺序加入新数组中
例子:
var foo:Array=["a","b","c"]
var bar1:int=1
var bar2:Array=[2,3,4]
var newarr=foo.concat(bar1,bar2)
trace(newarr)
//输出:a,b,c,1,2,3,4
trace(newarr.length)
//输出:7
—-{concat与push的区别:concat不会改变原有数组内容,push直接改变原有数组内容。concat加入数组时会将数组打散再按顺序将元素加入到新数组中,push加入数组时会将整个数组当作一个元素加入到原数组的后面}
reverse能将数组元素倒序
用法:数组.reverse() //返回的是新的数组
sort对数组元素排序
用法:
(1)数组.sort() //默认排序 按照字符串字母顺序排序,如果元素是数值,也会被当成字符串来排序
(2)数组.sort(排序方式) //使用“排序方式”参数来排序,排序方式是一些定义好的整数常量
(3)数组.sort(比较函数) //使用自定义的比较函数,注意此处只可写函数排序
sortOn 当数组元素是复杂数据类型,且需要根据这种对象的某个属性值来排序时使用。比如说某俎元素都有一个属性值name,希望根据name来排序,那么使用的方法如下
用法:
(1)数组.sortOn(”name”) //根据指定属性,默认排序
(2)数组.sortOn(”name”,排序方式) //根据指定属性,使用指定的“排序方式”来排序
(3)数组.sortOn(”name”,比较函数) //根据指定属性,使用自定义的函数排序
排序方式,是指一些再Array类中定义好的整形常量,代表几种不同的排序方式
(1)Array.CASEINSENSITIVE 值为1,表示大小写不敏感按字母顺序排序,如果是数字则从小到大。
(2)Array.DESCENDING 值为2,表示按字母到序排序
(3)Array.UNIQUESORT 值为4,表示必须是唯一性排序,如果比较值结果相同,则放弃排序 返回值为 0
(4)Array.RETURNINDEXEDARRAY 值为8,让sort()和sortOn()函数返回值返回排序后的索引列表,同时保持原数组不变
(5)Array.NUMERIC or 16 值为16,强制sort()和sortOn()中对数值采用从小到大排序。
比较函数的要求是,有两个参数,返回值是1,0,-1中的一个。
function 函数名(参数A,参数B):int{}
比较函数的作用是将数组里的元素一对对的取出来分别作为这个比较函数的两个参数,如果返回为1,那么作为A参数的元素就应该排在B的后面;如果返回为-1,那么A参数的元素就应该排在B前面,如果为0,表示结果一样。
forEach用法:数组.forEach(callFunction:Function,thisObject:*=null):viod //遍历操作:操作数组中的每一项元素。回调函数不需要返回任何值。
filter用法:数组.every(callFunction:Function,thisObject:*=null):Array //过滤器:将符合回调函数条件的元素提出来,构成一个新的数组并返回。
every用法:数组.filter(callFunction:Function,thisObject:*=null):Boolean //全员满足才为真:必须所有元素都让回调函数返回为true,every()才返回true,否则为false。回调函数返回单个元素比较结果,布尔值。
map用法:数组.filter(callFunction:Function,thisObject:*=null):Array //映射器:根据回调函数操作原数组每个元素,并利用回调函数返回的结果生成新的数组。回调函数返回的是单个新数组元素。
some用法:数组.filter(callFunction:Function,thisObject:*=null):Boolean //有一个满足为真:只要有一个元素能让回调函数返回true,则some()返回true,否则为false。回调函数返回的是单个元素比较结果,布尔值。
join用法:
将数组中的元素转换为字符串、在元素间插入指定的分隔符、连接这些元素然后返回结果字符串。嵌套数组总是以逗号 (,) 分隔,而不使用传递给 join()方法的分隔符分隔。
myArr
,其中包含元素
one
、
two
和
three
,然后创建一个包含
one and two and three
的字符串(使用
join()
方法)。
var myArr:Array = new Array("one", "two", "three");
var myStr:String = myArr.join(" and ");
trace(myArr); // one,two,three
trace(myStr); // one and two and three
specialChars
,其中包含元素
(
、
)
、
-
和一个空格,然后创建一个字符串,其中包含
(888) 867-5309
。然后使用
for
循环,删除
specialChars
中列出的每种类型的特殊字符,以生成一个字符串 (
myStr
),该字符串中仅包含剩余的电话号码数字:
888675309
。请注意,其它字符(如
+
)可能已添加到了
specialChars
中,这样此例程即可处理国际电话号码格式。
var phoneString:String = "(888) 867-5309";
var specialChars:Array = new Array("(", ")", "-", " ");
var myStr:String = phoneString;
var ln:uint = specialChars.length;
for(var i:uint; i < ln; i++) {
myStr = myStr.split(specialChars[i]).join("");
}
var phoneNumber:Number = new Number(myStr);
trace(phoneString); // (888) 867-5309
trace(phoneNumber); // 8888675309