数组中常用的方法
数组中常用的方法
concat( )
可以连接两个或多个数组,并将新的数组返回
该方法不会对原数组产生影响
var arr = ["苏","槿","年"];
var arr2 = ["李","嘉","图"];
var result = arr.concat(arr2);
console.log(result);
//输出“苏,槿,年,李,嘉,图”
join()
该方法可以将数组转换为一个字符串
该方法不会对原数组产生影响,而是将转换后的字符串作为结果返回
在join()中可以指定一个字符串作为参数,这个字符串将会成为数组中元素的连接符
如果不指定连接符,则默认使用逗号作为连接符
arr = ["苏","槿","年"];
result = arr.join("@");
console.log(result);
//输出“苏@槿@年”
reverse( )
该方法用来反转数组(前边的去后边,后边的去前边)
该方法会直接修改原数组
arr = ["苏","槿","年"];
arr.reverse();
console.log(arr);
//输出“年,槿,苏”
sort()
可以用来对数组中的元素进行排序
也会影响原数组,默认会按照Unicode编码进行排序
即使对于纯数字的数组,使用sort( )排序时,也会按照Unicode编码来排序,
所以对数字进排序时,可能会得到错误的结果
arr = [3,4,11,5,2];
arr.sort();
console.log(arr);
//输出“11,2,3,4,5”
我们可以自己来指定排序的规则
我们可以在sort( )添加一个回调函数,来指定排序规则,
回调函数中需要定义两个形参,
浏览器将会分别使用数组中的元素作为实参去调用回调函数
使用哪个元素调用不确定,但是肯定的是在数组中a一定在b前边
浏览器会根据回调函数的返回值来决定元素的顺序,
- 如果返回一个大于0的值,则元素会交换位置
- 如果返回一个小于0的值,则元素位置不变
- 如果返回一个0,则认为两个元素相等,也不交换位置
arr = [7,4,5,9,8,6,3,1,2];
arr.sort(function(a,b)){
if(a>b){
return 1;
}else if(a<b){
return -1;
}else{
return 0;
}
});
//输出“1,2,3,4,5,6,7,8,9”
如果需要升序排列,则返回a-b
如果需要降序排列,则返回b-a