concat() 连接数组
- 连续两个或更多的数组,并返回结果
- 也可以直接传入元素
var arr = ['孙悟空', '猪八戒', '沙和尚', '唐僧'];
var arr2 = ["白龙马","白骨精"];
var result = arr.concat(arr2,"hello","world"); // 传入了数组和元素
console.log(result); // [ "孙悟空", "猪八戒", "沙和尚", "唐僧", "白龙马", "白骨精", "hello", "world" ]
join() 将数组转换为字符串,通过分隔符分割
- 把数组的所有元素放入一个字符串,元素通过指定的分隔符进行分割
- 不会对原数组产生影响,而是将转换后的字符串作为结果返回
- 在 join() 中可以指定一个字符串作为参数,这个字符串将会称为数组中元素的连接符
- 如果不指定连接符,则默认使用
,
作为连接符var arr = ['孙悟空', '猪八戒', '沙和尚', '唐僧'];
var result = arr.join("*");
console.log(result); // 孙悟空*猪八戒*沙和尚*唐僧
- 如果不指定连接符,则默认使用
reverse() 颠倒数组中元素的顺序
- 颠倒数组中元素的顺序(前边的去后边,后边的去前边)
- 该方法会直接修改原数组
var arr = ['孙悟空', '猪八戒', '沙和尚', '唐僧'];
arr.reverse();
console.log(arr); // [ "唐僧", "沙和尚", "猪八戒", "孙悟空" ]
sort() 数组排序
- 对数组中的元素进行排序
会影响原数组,默认按照 Unicode编码进行排序
var arr = ['孙悟空', '猪八戒', '沙和尚', '唐僧'];
// var arr = ["d","c","b","a"];
// var arr = [5,4,3,2,1,12];
arr.sort();
console.log(arr); // [ "唐僧", "孙悟空", "沙和尚", "猪八戒" ]
即使对于纯数字的数组,使用 sort()排序时,也会按照 Unicode编码进行排序
var arr = [5,4,3,2,1,12];
arr.sort();
console.log(arr); // [ 1, 12, 2, 3, 4, 5 ]
可以自己来定义排序的规则
在 sort() 添加一个回调函数,来指定排序规则,
- 回调函数需要定义两个形参,
- 浏览器会分别使用数组中的元素作为实参去调用回调函数
- 使用哪个元素调用不确定,但是肯定的是在数组中 a 一定在 b 前边 ```javascript var arr = [5,4,3,2,1,12]; arr.sort(function(a,b){
}); console.log(arr);
浏览器会根据回调函数的返回值来决定元素的顺序
- 如果返回一个大于 0 的值,则元素会交换位置
- 如果返回一个小于 0 的值,则元素位置不变
- 如果返回一个 0,则认为两个元素相等,也不交换位置
```javascript
var arr = [5,4,3,2,1,12];
arr.sort(function(a,b){
// 升序
return a - b;
});
console.log(arr); // [ 1, 2, 3, 4, 5, 12 ]
var arr = [5,4,3,2,1,12];
arr.sort(function(a,b){
// 降序
return b - a;
});
console.log(arr); // [ 12, 5, 4, 3, 2, 1 ]
升序
- a - b
降序
- b - a