数组合并
1.把多个数组合并成一个数组
concat(数组1,数组2, … , 数组n);
返回一个合并后的数组,新数组
var arr1 = ['张飞','李逵'];
var arr2 = ['林黛玉','薛宝钗'];
var arr3 = arr1.concat(arr2);
console.log(arr3);
<ul id="list"></ul>
var list = document.getElementById("list");
for(var i=0;i<arr3.length;i++){
list.innerHTML += '<li>'+arr3[i]+'</li>';
}
2.把数组拼接成一个字符串
join(参数符号)
参数:一个字符,该字符可以是任意字符,默认是英文的逗号
返回值是合并之后的字符串
var str1 = arr3.join(',');
list.innerHTML += '<li>'+str1+'</li>';
把字符串分割成数组
split(分割参数符号);
参数,切割符,必须是字符串中的一个字符或者是’’
var str2 = '赵钱#孙李#周吴#郑王';
var arr4 = str2.split('#');
console.log(arr4);
var arr5 = str2.split('');
console.log(arr5);
var arr6 = str2.split('李#周');
console.log(arr6);
数组排序
倒序(反过来排)
reverse(); 该函数没有返回值,它修改的是数组本身
var arr7 = [10,9,8,1,2,3,4,5,6,7];
console.log(arr7);
arr7.reverse();
console.log(arr7);
sort(); 该函数修改的是原数组
sort默认排序,首先把number类型转化为字符串类型,然后会依据ASCII码进行排序
ASCII码进行排序的排序规则,先对比每一个字符串中的首位字符的ASCII码,哪一个的ASCII码排在前面,则哪一个元素就排在前面,如果首位字符相同,则对比第二位字符,以此类推
字符编码:
数字还是0-9依次变大
A-Z 依次变大
A<a
var arr8 = [10,9,8,1,2,3,4,5,6,7];
arr8.sort();
console.log(arr8);
var arr9 = [10,'张飞','Abc','a','陈胜'];
arr9.sort();
console.log(arr9);
/*
sort函数进行排序的时候,还可以给sort()加参数,可以传入一个自定义的函数,用来设置排序的规则,该自定义函数必须有返回值
var arr10 = [10,1,6,9,7,4,8,2]
arr10.sort(function(参数1,参数2){
return 参数1-参数2;
});
return 参数1-参数2 : 从小到大排序
return 参数2-参数1 : 从大到小排序
当返回一个正数的时候,会交换两者的位置
当返回一个负数的时候,不会交换两者的位置
当返回一个0的时候,默认是两个数字相等,不交换位置
* */
var arr10 = [10,1,6,9,7,4,8,2]
arr10.sort(function(m,n){
return n-m;
});
console.log(arr10);
/*
数组打乱的原理:sort()的参数函数中,如果它的返回值>0,会交换数组中两个元素的位置,如果它返回的值<=0则不会交换位置
* */
var arr11 = [10,1,6,9,7,4,8,2];
arr11.sort(function(){
return Math.random()-0.5;
});
console.log(arr11);