数组常用API
2016-10-26 本文已影响28人
Mescal川
1.reverse()
将数组的元素颠倒过来,也就是变成逆序,此方法会修改原数组。
var arr=[1,2,3,4,5];
console.log(arr.reverse());//5,4,3,2,1
console.log(arr);//5,4,3,2,1
2.sort()
默认对数组进行升序排序。此方法会修改原数组。
var arr=[5,4,3,2,1];
arr.sort();
console.log(arr);//1,2,3,4,5
如果数组中 存放的不是整数呢?假设数组中有字符串1,10,9,100那么最终的排序结果却是1,10,100,9。这是因为sort是按字母顺序对数组中的元素进行排序,说得更精确点,是按照字符编码的顺序进行排序。
如果想按照其他标准进行排序,就需要提供比较函数,该函数要比较两个值,然后返回一个用于说明这两个值的相对顺序的数字。
function compare(value1,value2){
return value1-value2;
}
}
var arr=["1","10","9","100"];
arr.sort(compare);
console.log(arr);//["1","9","10","100"]
两个字符串数字相减会转化为整数,所以当value1小于value2时会返回负数,当value1大于value2时会返回正数,sort会根据这些不同的返回值来进行排序(在这里就是按照字符串的数字值来排序)。
3.concat()
数组的拼接,创建当前数组的副本,将接收到的参数添加到这个副本中并返回新构建的数组。
var arr1=["black","white","red"];
var arr2=arr1.concat("blue");
console.log(arr2);//["black","white","red","blue"]
4.slice()
可以把slice当作创建当前数组的子数组,它的参数代表数组的位置,当只有一个参数时,返回从该位置到数组末尾的子数组,当有两个参数时,返回起始位置到结束位置-1的子数组。
var arr=["red","green","blue","yellow"];
var arr1=arr.slice(1);
var arr2=arr.slice(1,3);
console.log(arr1);//["green","blue","yellow"]
console.log(arr2);//["green","blue"]
5.splice()
splice可以说是数组的所有方法中最强大的方法了,它既可以实现删除,也可以实现插入,还可以实现替换。它接受三个参数,要删除的第一项的位置,要删除的项数,要替换的新数据。
如果指定前两个参数就可以实现删除,如果指定三个参数并且第二个参数为0,就是实现了插入,如果指定了三个参数就实现了替换。
splice在原数组上进行修改,并返回删除的项。
var arr=["red","green","blue","yellow"];
arr.splice(0,2);//删除数组中的前两项
console.log(arr);//["blue","yellow"]
arr.splice(0,0,"red","green");//插入
console.log(arr);//["red","green","blue","yellow"]
arr.splice(0,1,"black");//替换掉第一个元素
console.log(arr);//["black","green","blue","yellow"]
6.indexOf()、lastIndexOf()
返回某个元素的位置,indexOf是从数组的开头查找,lastIndexOf是从后往前找。
var arr=[1,2,3,1,5];
console.log(arr.indexOf(1));//0
console.log(arr.lastIndexOf(1));//3