- 所谓的遍历数组就是将数组中的元素全部取出来
- 一般使用for循环遍历数组,js中还提供了一个方法遍历数组
for循环遍历数组
var arr=["孙悟空","猪八戒","沙和尚"];
//所谓的遍历数组就是说将数组织中的元素全部取出来
for(var i=0;i<arr.length;i++){
console.log(arr[i]);
}
forEach( );
-
forEach( )方法需要一个函数作为参数;
-
像这种函数由我们创建但不由我们调用的函数叫回调函数
-
数组中有几个元素函数就会执行几次,每次执行时,浏览器会将遍历到的元素以实参的形式传递进来,可以定义形参来读取这些内容
-
浏览器会在回调函数时,传递三个参数
-
第一个参数就是当前正在遍历的元素
-
第二个参数就是当前正在遍历的元素索引
-
第三个参数就是当前正在遍历的数组
//创建一个数组
var arr=["孙悟空","猪八戒","唐僧","沙和尚"];
arr.forEach(function(a,b,c){
console.log("a="+a); //当前遍历的元素
console.log("b="+b); //当前正在遍历元素的索引
console.log("c="+c); //当前正在遍历的数组
console.log(typeof c);})
slice( )
- 可以用来从数组中提取指定元素
- 该方法不会改变原数组,而是将截取到的元素封装到一个新数组
- 参数:
- 截取开始位置的索引,包含开始索引
- 截取结束位置的索引,不包含结束索引
-
第二个参数可以省略不写,此时会截取从开始索引往后
-
的所有元素
-
索引可以是负值,如果传递一个负值,则从后往前计算- 1 倒数第一个
var arr=["孙悟空","猪八戒","唐僧","沙和尚"];
var result=arr.slice(0,2); //(开始索引,结束索引) 提取数组中的指定元素
var result=arr.slice(1); //一个参数,从开始索引以后的所有元素
console.log(result);
splice( )
- 可以用于删除数组中的指定元素
- 使用splice( )会影响到原数组,会将指定元素原数组中删除,并将被删除的元素作为返回值返回
- 参数:
-
第一个参数表示开始位置的索引
-
第二个参数表示删除的数量
-
第三个及以后可以传递一些新元素,这些元素会插入在开始位置的索引前面
arr.splice(0,2,"牛魔王","铁扇公主","红孩儿"); //删除数组中指定元素,并添加新元素
console.log(arr);
splice( )数组去重
var arr=[1,2,2,3,2,1,3,4,2,5];
//去除数组中重复的数字
//获取数组中的每一个元素
for(var i=0; i<arr.length; i++){
// console.log(arr[i]);
/* 获取当前元素后的所有元素 */
for(var j=i+1; j<arr.length; j++){
// console.log("------->"+arr[j]);
//判断两个元素的值是否相等
if(arr[i]==arr[j]){
//如果相等,则证明处出现了重复的元素,则删除j对应的元素
arr.splice(j,1);
//当删除了当前j所在的元素以后,后边的元素会自动补位
//此时将不会再比较这个元素,需要在比较一次j所在位置的元素
//使j自减
j--;
}
}
}
concat( )
-
concata( )可以连接两个或多个数组,中间用逗号隔开并将新的数组返回
-
该方法不会对原数组产生影响
var arr=["孙悟空","猪八戒","沙和尚"];
var arr2=["白骨精","玉兔精","蜘蛛精"];
var result=arr.concat(arr2);
//concat()可以连接两个或多个数组,中间用逗号隔开
//console.log("result="+result);
Join( )
-
该方法可以将数组转换成字符串
-
该方法不会对原数组产生影响,而是将转换后的字符串作为结果返回
-
在join( )中可以指定一个字符串作为参数,这个字符串将会成为数组中元素的连接符
var result=arr.join("--");
//join()将数组转换成字符串,可以指定一个字符串作为数组中元素的连接符
console.log("result="+result); //不指定连接符,则默认使用逗号连接
console.log(typeof result);
reverse( )
- 该方法用来反转数组(前边的去后边,后边的去前边)
- 该方法会直接修改原数组
-
var result=arr.reverse();
Sort( )
-
该方法会对数组中的元素进行排序
-
也会影响原数组,默认会按照Unicode编码进行排序
-
即使是纯数字的数组,也会按照Unicode编码进行排序
-
可以自己指定排序的规则,可以在sort()添加一个回调函数,来指定排序规则
-
回调函数中需要定义两个形参;
-
浏览器会分别使用数组中的元素作为实参去调用回调函数
-
浏览器会根据回调函数的返回值来决定元素的顺序
-
如果返回一个大于0的值,则会交换位置
-
如果返回一个小于0的值,则元素位置不变
-
如果返回0,则认为两个元素相等,也不交换位置
var arr=["b","d","e","a","c"]
var result=arr.sort(); //该方法会对数组中的元素进行排序
console.log("result="+result);var arr=[1,5,3,4,9,2,8];
arr.sort(function(a,b){
return a-b; //升序排序 b-a降序排序
});
console.log(arr);