js中数组的学习--数组API(后四个)

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 ]   
    */
})

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值