4.排序方法
1.reverse() 方法用于颠倒数组中元素的顺序。
参数;无 返回值:颠倒顺序后的数组
var arr=[1,2,3,4,'tom'];
var result=arr.reverse();
console.log(result,'返回值');//[ 'tom', 4, 3, 2, 1 ] 返回值
console.log(arr,arr.length,'修改原数组');//[ 'tom', 4, 3, 2, 1 ] 5 修改原数组
2.sort();用于对数组的元素进行排序
sort()方法用于对数组的元素进行排序。
如果调用该方法时没有使用参数,将按字母顺序(Ascall编码)
对数组中的元素进行排序,说得更精确点,是按照字符 编码的顺序进行排序。
参数:无或者函数 返回值:排序后的数组
var arr=[2,5,8,23,58,9,42,6,4,7];
// 有参排序-升序
var result=arr.sort(function(a,b){
if(a>b){ //如果这里a<b 就会降序
return 1
}else{
return -1
}
})
console.log(result,'返回值');//[2, 4, 5, 6, 7,8, 9, 23, 42, 58 ] 返回值
console.log(arr,arr.length,'修改原数组');//[2, 4, 5, 6, 7,8, 9, 23, 42, 58] 10 修改原数组
//降序
var result1=arr.sort(function(a,b){
if(a>b){ //如果这里a<b 就会升序
return -1
}else{
return 1
}
})
console.log(result1,'返回值');//58, 42, 23, 9, 8,7, 6, 5, 4, 2] 返回值
console.log(arr,arr.length,'修改原数组');//[58, 42, 23, 9, 8,7, 6, 5, 4, 2] 10 修改原数组
//无参排序
var arr=[2,5,8,23,58,9,42,6,4,7];
var result=arr.sort();
console.log(result,'返回值');//[2, 23, 4, 42, 5,58, 6, 7, 8, 9] 返回值
console.log(arr,arr.length,'修改原数组');//[2, 23, 4, 42, 5,58, 6, 7, 8, 9] 10 修改原数组
var arr1=[2,5,4,6,9,3,7,5];
var result1=arr1.sort();
console.log(result1);//[2, 3, 4, 5,5, 6, 7, 9]
5.操作方法
1.concat() 方法用于连接两个或多个数组。
参数:拼接的数组,返回值:返回新的数组
var arr=[1,2,3];
var arr1=[4,5,6];
var arr2=[7,8,9];
var result=arr.concat(arr1,arr2);
console.log(result,'返回值');//[1, 2, 3, 4, 5,6, 7, 8, 9 ] 返回值
console.log(arr,arr.length,'不修改原数组');//[ 1, 2, 3 ] 3 不修改原数组
2.slice() 方法可从已有的数组中返回选定的元素。
参数:开始位置 结束位置 返回值:返回一个新的数组,包含从start到 end(不包括该元素)数组中的元素。
var arr=['tom','zhangsan','lisi',1,2,3];
var result=arr.slice(1,2);
console.log(result);//[ 'zhangsan' ]
console.log(arr,arr.length,'不修改原数组');//[ 'tom', 'zhangsan', 'lisi', 1, 2, 3 ] 6 不修改原数组
3.splice() 方法用于添加或删除数组中的元素。
参数:index(必须的) howmany '想要添加的数组元素' 规定从何处添加/删除元素。该参数是开始插入和(或)删除的数组元素的下标,必须是数字。
howmany:可选。规定应该删除多少元素。必须是数字,但可以是 "0"。
如果未规定此参数,则删除从 index 开始到原数组结尾的所有元素。
添加的元素:可选。要添加到数组的新元素
返回值:如果从数组中删除了元素,则返回的是含有被删除的元素的数组
var arr=['tom','zhangsan','lisi',1,2,3];
//删除的第一种情况
var result=arr.splice(1);
console.log(result,'返回值');//[ 'zhangsan', 'lisi', 1, 2, 3 ] 返回值
console.log(arr,arr.length,'修改原数组');//[ 'tom' ] 1 修改原数组
//删除的第二种情况
var result1=arr.splice(0,2);//从索引为0的地方开始删除,删除两项
console.log(result1,'返回值');//[ 'tom', 'zhangsan' ] 返回值
console.log(arr,arr.length,'修改原数组');//[ 'lisi', 1, 2, 3 ] 4 修改原数组
//添加元素
var result2=arr.splice(2,0,'terry','larry');//从索引为2的位置开始插入,0表示添加,向前添加'terry','larry'
console.log(result2,'返回值');//[] 返回值
console.log(arr,arr.length,'修改原数组');//[ 'tom', 'zhangsan', 'terry', 'larry', 'lisi', 1, 2, 3 ] 8 修改原数组
6.位置方法
1.indexOf()方法可返回数组中某个指定的元素位置。
参数:查找的元素 返回值:元素在数组中的位置,如果没有搜索到则返回 -1
var arr=['hello','tom','zhangsan',[1,2,3],'tom'];
var result=arr.indexOf('zhangsan');
console.log(result,'返回值');//2 返回值
console.log(arr,arr.length,'不修改原数组');//[ 'hello', 'tom', 'zhangsan', [ 1, 2, 3 ], 'tom' ] 5 不修改原数组
2.lastIndexOf()方法可返回一个指定的元素在数组中最后出现的位置,从该字符串的后面向前查找。
参数:查找的元素 返回值:返回元素最后的索引
var arr=['hello','tom','zhangsan',[1,2,3],'tom'];
var result=arr.lastIndexOf('tom');
console.log(result,'返回值');//4 返回值(这里是从后往前数的)
console.log(arr,arr.length,'不修改原数组');//[ 'hello', 'tom', 'zhangsan', [ 1, 2, 3 ], 'tom' ] 5 不修改原数组
7.迭代方法
1.every() 方法用于检测数组所有元素是否都符合指定条件。
参数:function函数(item,index,arr)
返回值:布尔值。如果所有元素都通过检测返回 true,否则返回 false。
var arr=[12,5,26,45,36,78];
var result=arr.every(function(item,index,arr){
var result1=item>18;
console.log(result1);//false
})
console.log(arr,arr.length,'不修改原数组');//[ 12, 5, 26, 45, 36, 78 ] 6 不修改原数组
2.some() 方法用于检测数组中的元素是否满足指定条件。
参数:function函数(item,index,arr)
返回值:如果有一个元素满足条件,则表达式返回true , 剩余的元素不会再执行检测。
var arr=[12,5,26,11,36,78];
var result=arr.some(function(item,index,arr){
return item>18;
})
console.log(result);//true
console.log(arr,arr.length,'不修改原数组');//[ 12, 5, 26, 11, 36, 78 ] 6 不修改原数组
3.filter() 方法创建一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素。
参数:function函数(item,index,arr)
返回值:返回数组,包含了符合条件的所有元素。如果没有符合条件的元素则返回空数组。
var arr=[10,12,26,35,46];
var result=arr.filter(function(item,index,arr){
return item>12
})
console.log(result);//[ 26, 35, 46 ]
4.map() 方法返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值。
参数:function函数(item,index,arr)
返回值:返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值。
var arr=[10,12,26,35,46];
var arr=[
{
name:'zhangsan',
id:1
},{
name:'lisi',
id:2
},{
name:'wangwu',
id:3
}
]
var result=arr.map(function(item,index,arr){
return item.id
})
console.log(result);//[ 1, 2, 3 ]
var result=arr.map(function(item,index,arr){
return item+2
});
console.log(result);//[ 12, 14, 28, 37, 48 ]
5.forEach() 方法用于调用数组的每个元素,并将元素传递给回调函数。
参数:function函数(item,index,arr)
返回值:undefined。
var arr=[10,12,26,35,46];
arr.forEach(function(item,index,arr){
console.log(item,index,arr);
/*
10 0 [ 10, 12, 26, 35, 46 ]
12 1 [ 10, 12, 26, 35, 46 ]
26 2 [ 10, 12, 26, 35, 46 ]
35 3 [ 10, 12, 26, 35, 46 ]
46 4 [ 10, 12, 26, 35, 46 ]
*/
})