数组API
1. 排序方法
-
Array.prototype.reverse()
reverse() 方法用于颠倒数组中元素的顺序。
语法:
array.reverse()
//颠倒数组中元素的顺序 var fruits = ["Banana", "Orange", "Apple", "Mango"]; fruits.reverse(); console.log(fruits) //fruits结果输出:Mango,Apple,Orange,Banana
-
Array.prototype.sort()
sort() 方法用于对数组的元素进行排序。如果调用该方法时没有使用参数,将按字母顺序(Ascall编码)对数组中的元素进行排序。要实现这一点,首先应把数组的元素都转换成字符串(如有必要),以便进行比较。排序顺序可以是字母或数字,并按升序或降序。排序顺序可以是字母或数字,并按升序或降序。
语法:
array.sort(sortfunction)
var fruits = ["Banana", "Orange", "Apple", "Mango"]; fruits.sort(); console.log(fruits) //fruits 输出结果:Apple,Banana,Mango,Orange
-
关于升序和降序的条件
当 a>b 时, a - b > 0 ,排序结果 ===> b,a (升序) b - a < 0 ,排序结果 ===> a,b (降序) 当 b>a 时, a - b < 0 ,排序结果 ===> a,b (升序) b - a > 0 ,排序结果 ===> b,a (降序) 当 a=b 时, a - b = b - a =0 , 排序结果 ===> 保持不变
无论a>b还是b>a,return a-b 总能得到升序的结果,而 return b-a 总能得到降序的结果。
数字升序
var points = [40,100,1,5,25,10]; points.sort(function(a,b){ return a-b }); //points输出结果:1,5,10,25,40,100
数字降序
var points = [40,100,1,5,25,10]; points.sort(function(a,b){ return b-a }); //fruits输出结果:100,40,25,10,5,1
2.操作方法
-
Array.prototype.concat()
concat() 方法用于连接两个或多个数组。该方法不会改变现有的数组,而仅仅会返回被连接数组的一个副本。
语法:
array1.concat(array2,array3,...,arrayX)
实例:合并三个数组的值
var hege = ["Cecilie", "Lone"]; var stale = ["Emil", "Tobias", "Linus"]; var kai = ["Robin"]; var children = hege.concat(stale,kai); //children 输出结果:Cecilie,Lone,Emil,Tobias,Linus,Robin
-
Array.prototype.slice()
slice() 方法可从已有的数组中返回选定的元素。可提取字符串的某个部分,并以新的字符串返回被提取的部分。
语法:
array.slice(start, end)
var fruits = ["Banana", "Orange", "Lemon", "Apple", "Mango"]; var citrus = fruits.slice(1,3); //citrus 结果输出:Orange,Lemon
-
Array.prototype.splice()
splice() 方法用于添加或删除数组中的元素。(会改变原始数组)
语法:
array.splice(index,howmany,item1,.....,itemX)
数组中添加新元素:
var fruits = ["Banana", "Orange", "Apple", "Mango"]; //从数组索引位置 2 开始,不删除元素,添加两个新的元素"Lemon","Kiwi" fruits.splice(2,0,"Lemon","Kiwi"); //fruits输出结果:Banana,Orange,Lemon,Kiwi,Apple,Mango
移除数组的第三个元素,并在数组第三个位置添加新元素:
var fruits = ["Banana", "Orange", "Apple", "Mango"]; fruits.splice(2,1,"Lemon","Kiwi"); //fruits输出结果:Banana,Orange,Lemon,Kiwi,Mango
从第三个位置开始删除数组后的两个元素:
var fruits = ["Banana", "Orange", "Apple", "Mango"]; fruits.splice(2,2); //fruits输出结果:Banana,Orange
3. 位置方法
-
Array.prototype.indexOf()
indexOf() 方法可返回数组中某个指定的元素位置。
语法:
array.indexOf(item,start)
该方法将从头到尾地检索数组。开始检索的位置在数组 start 处或数组的开头(没有指定 start 参数时)。如果找到一个 item,则返回 item 的第一次出现的位置。开始位置的索引为 0。如果在数组中没找到指定元素则返回 -1。
查找数组中的 “Apple” 元素:
var fruits = ["Banana", "Orange", "Apple", "Mango"]; var a = fruits.indexOf("Apple"); //a结果输出:2 //以上输出结果意味着 "Apple" 元素位于数组中的第 3 个位置。
-
Array.prototype.lastIndexOf()
此方法较少用,与indexOf()恰好相反
lastIndexOf() 方法可返回一个指定的元素在数组中出现的位置,从该字符串的后面向前查找。如果要检索的元素没有出现,则该方法返回 -1。
语法:
array.lastIndexOf(item,start)
该方法将从尾到头地检索数组。开始检索的位置在数组的 start 处或数组的结尾(没有指定 start 参数时)。如果找到一个 item,则返回 item 从尾向前检索第一个次出现在数组的位置。数组的索引开始位置是从 0 开始的。如果在数组中没找到指定元素则返回 -1。