sort 排序函数 没有返回值,对原数组进行操作
//sort 对数组进行排序,不写参数
// arr1=[1,3,5,9,7,4,2,10];
// //使用sort进行排序,如果不写参数,按照字母的顺序进行排序,但是对数值会有点问题
// arr1.sort();
// console.log(arr1);
//sort 对数组进行排序 ,写参数 回调函数该函数要比较两个值,然后返回一个用于说明两个值的相对顺序的数字
//若a<b 在排序后的数组中,a应该出现在b之前,则返回一个小于0的值
//若a=b 在返回0
//若a>b 则返回一个大于0的值
arr1=[1,3,9,5,6,7,10,2];
//这里使用a-b是从小到大排序,b-a侧是从大到小排序
// arr1.sort(function (a,b){return a-b}); 返回 1,2,3,5,6,7,9,10
arr1.sort(function (a,b){return b-a}); //返回 10,9,7,6,5,3,2,1
console.log(arr1);
indexof 检索字符串 没检索到 返回-1
/*indexof函数 返回number 没找到 返回-1
indexof有两个参数,第一个参数 要检索的数值或者字符串必选,第二个参数 可选,从索引第几位开始查找
当第二个参数选择时候,返回检索字符或数值出现的索引位置
*/
var a='sdfsfs';
//检索a字符串,中是否有s 从第二位开始找
console.log(a.indexOf('s',2)); //返回3
利用indexOf函数 给数组去重复
<script>
arr1=[1,3,8,9,4,8,1,6,4,5];
arr2=[];
for(var i=0;i<arr1.length;i++){
if(arr2.indexOf(arr1[i])>-1){
continue;
}
arr2.push(arr1[i])
}
console.log(arr2);
</script>
slice函数
arrayObject.slice(start ,end) 此方法不会对原数组产生影响,会返回一个新数组。
<script>
arr=[1,4,5,9,8,7,5];
//slice 不写参数 默认是将元数组复制并返回
// arr1=arr.slice();
// arr[0]=12;
// console.log(arr1,arr);
//slice 写有一个参数,表示,从数组参数索引开始截取至数组的尾部,并返回新数组
// arr1=arr.slice(3);
// console.log(arr1); //输出 9,8,7,5
//slice写有2个参数 表示从数组参数索引开始窃取至第二个参数索引,并返回新数组
arr1=arr.slice(2,3);
console.log(arr1); //返回数组,值为5
</script
splice()函数
splice() 方法向/从数组中添加/删除项目,然后返回被删除的项目。
默认不写参数是将原数组删除并将删除的项目在返回给元数组(复制数组)
<script>
arr=[1,4,5,9,8,7,5];
//splice只写1个参数 表示从索引0开始 删除1个元素,并改变原数组
// arr.splice(1);
// console.log(arr); //返回1
//splice两个参数表示 从原数组中索引为0开始 删除一个元素
// arr.splice(0,1);
// console.log(arr); //返回 4,5,9,8,7,5
// //如果第二个参数是0 表示不删除任何元素
// arr.splice(1,0);
// console.log(arr);
//splice 写有3个以上的函数,表示从原数组中删除从索引第一个参数开始 删除第二个参数的元素
//,并且用第三个新元素来代替删除的元素
arr.splice(1,0,'中国','日本');
console.log(arr); //返回 1 中国 日本 9875 注意 如果第二位为0 表示不删除 并且添加
</script>
join函数
用于把数组中的所有元素放入一个字符串。参数可选,选择使用什么来分割 返回字符串
arr=[1,4,5,9,8,7,5];
//join函数 不写参数 默认是以数组的逗号分隔
// console.log(arr.join()); //返回1,4,5,9,8,7,5
//join 参数- 表示以横杠分割数组 返回字符串
console.log(arr.join('-')); //1-4-5-9-8-7-5
concat函数
用于连接两个数组或数值,返回连接数组的副本(引用地址一样)。
<script>
arr=[1,4,5,9,8,7,5];
arr1=[3,5,8]
// //concat函数 用于两个数组的连接,返回连接数组的副本,不改变原数组
// //如果arr索引0 值改变,使用concat连接数组的返回 也会改变
// arr[0]=10;
// console.log(arr.concat(arr1));
//如果不写参数 返回一个arr数组的副本
console.log(arr.concat());
//concat的参数也可以是具体的值,如3 5 6 可以是多个
console.log(arr.concat(3,5,6)); //返回1,4,5,9,8,7,5,3,5,6
</script>
from 函数 属于es6 中新增的类方法,把对象或者转化成 数组
var str="zhonghaos";
console.log(str[0]); //返回z
console.log(Array.from(str)); //返回一个zhonguohaos 的数组,字符串也属于对象
函数中的argumnts
show(1,2);
function show(a,b){
//返回arguments 对象
console.log(arguments);
//返回arguments对象的方法体
console.log(arguments.callee);
//把arguments 对象抓换成数组,
var arr=Array.from(arguments);
//返回该参数共有几个参数
console.log(arguments.length);
//返回aruments对象转换数组后,每个参数的值
console.log(arr[0],arr[1]);
}
</script>
split 函数
split() 方法用于把一个字符串分割成字符串数组。 和join 正好相反,join是将数组分割成字符串
语法
stringObject.split(separator,howmany)
var str="zhonghaos";
//以空格的形式分割字符串并返回数组 ["z", "h", "o", "n", "g", "h", "a", "o", "s"]
console.log(str.split(""));
str1="a,b,er,hg,sd,s";
console.log(str1.split(",")); ["a", "b", "er", "hg", "sd", "s"]
//需求 //把上面的url返回对象形式 {id:1356,user:admin,password:123456}
var url="www.badu.com:8082?id=1356&user=admin&password=123456";
//我们只适用id=1356&user=admin&password=123456 所以数组从0开始 用第一个
var arr=url.split("?")[1];
var str1=arr.split("&"); //返回["id=1356", "user=admin", "password=123456"]
var obj={};
for(i=0;i<str1.length;i++){
var arr1=str1[i].split("=");
obj[arr1[0]]=arr1[1];
}
console.log(obj);
//案例 封装成方法
function getObject(url){
var obj={};
var arr=url.split("?")[1].split("&");
for(i=0;i<arr.length;i++){
var arr1=arr[i].split("=");
obj[arr1[0]]=arr1[1];
}
return obj;
}
var o=getObject("www.badu.com:8082?id=1356&user=admin&password=123456");
console.log(o);