js数组方法

252 阅读4分钟

虽然我很菜,但是我很猛。 // js常用数组方法

//1.Array.push();向数组的末尾添加一个或者多个元素,并返回新的数组长度。原数组改变

    const arrPush=[1,2,3,4];
    arrPush.push(5,6,7);
    console.log('push',arrPush);

//2.Array.pop();删除并返回数组的最后一个元素,若该数组为空,则返回undefined,原数组改变

    const arrPop=[1,2,3,4];
    arrPop.pop();
    console.log('pop',arrPop);

//3.Array.unshift();向数组的开头添加一个或者多个元素,并返回的数组长度,原数组改变

    const arrUnshift=[1,2,3,4];
    arrUnshift.unshift(-1,0);
    console.log('unshift',arrUnshift);

//4.Array.shift();删除数组的第一项,并返回第一个元素的值,若该数组为空,则返回undefined,原数组改变

    const arrShift=[1,2,3,4];
    arrShift.shift();
    console.log('shift',arrShift);
    //总结:删除的都是删除第一个或者最后一个元素,但是添加的可以前后添加一个或者多个元素;
    //原数组改变的数组方法(sortpopunshiftshiftpush)

//5.Array.concat();,合并两个或者多个数组,生成一个新的数组,原数组不变。

    const arrConcat=[1,2,3,4];
    const arrFirst=['a','b','c'];
    const arrSecond=['e','f','g'];
    const arrConcatResult1=arrConcat.concat(arrFirst);
    const arrConcatResult2=arrConcat.concat(arrFirst,arrSecond);
    console.log('concat',arrConcatResult1,arrConcatResult2);

//6.Array.join();将数组中的每一项用指定的字符连接成一个字符串,默认连接字符为逗号',';

    const arrJoin=[1,2,3,4];
    const arrJoinResult1=arrJoin.join();
    const arrJoinResult2=arrJoin.join('-');
    console.log('join',arrJoinResult2,arrJoinResult1);

//7.Array.reverse();将数组倒序,原数组改变

    const arrReverse=[1,2,3,4];
    const arrReverseResult=arrReverse.reverse();
    console.log('reverse',arrReverseResult,arrReverse);

//8.Array.sort();对数组元素进行排序。按照字符串Unicode码排序,原数组改变

//从小到大$从大到小

    const arrSort1=[1,2,3,4];
    const arrSort2=[2,4,23,4,66]
    const arrSortResult1=arrSort1.sort((a,b)=>a-b);
    const arrSortResult2=arrSort2.sort((a,b)=>b-a);
    console.log('sort1',arrSortResult1,arrSortResult2,arrSort1,arrSort2);
    //按照数组对象中的某个值进行排序
    const arrObj1=[{
        name:'小一',age:'18'
    },{
        name:'小二',age:'16'
    },{
        name:'小三',age:'20'
    }];
    const arrObj2=[{
        name:'小一',age:'18'
    },{
        name:'小二',age:'16'
    },{
        name:'小三',age:'20'
    }];
   const arrObjSort1= arrObj1.sort((a,b)=>a.age-b.age);
   const arrObjSort2=arrObj2.sort((a,b)=>b.age-a.age);
    console.log('sort2',arrObjSort1,arrObjSort2);

//9.Array.map();原数组的每一项执行函数后,返回一个新的数组,原数组不变。(注意该方法和forEach的区别)

    const arrMap1=[{
        name:'小一',age:'18'
    },{
        name:'小二',age:'16'
    },{
        name:'小三',age:'20'
    }];
    const arrMap2=[1,2,3,35]
    //遍历数组
    const arrMapResult1=arrMap1.map(function(arr){return arr.name });
    //遍历数组对象
    const arrMapResult2=arrMap1.map((arr)=>{return {'age':arr.age}});
    console.log('map',arrMapResult1,arrMapResult2);

//(数组截取)10.Array.slice(start,end);从start开始,end之前结束,不到end;如果不给end值,从start开始到数组结束;start可以给负值,-1表示数组最后一位

//-2,表示倒数第二个,以此类推,顾前不顾后。slice中start和end只能按顺序查找,不能逆序查找。原数组不改变

    const arrSlice=[1,2,3,4,'a','b','c','d'];
    const arrSliceResult1=arrSlice.slice(0,2);
    const arrSliceRsult2=arrSlice.slice(1,3);
    const arrSliceResult3=arrSlice.slice(0,-1);//-1代表倒数第一个位置,但是不包括倒数第一个
    const arrSliceResult4=arrSlice.slice(4,-1);
    const arrSliceResult5=arrSlice.slice(-4,-1);
    console.log('slice',arrSlice,arrSliceResult1,arrSliceRsult2,arrSliceResult3,arrSliceResult4,arrSliceResult5);

//(数组增删改查)11.Array.splice(index,howmany,arr1,arr2);删除元素并添加元素,从index位置开始删除howmany个元素,并将arr1,arr2数据从index位置依次插入。howmany为0时候,则不删除,原数组改变。

//返回删除元素组成的数组,howmany为0时候,不会删除但是一定会添加,注意也是当index为负数时候也是顺序执行,而不是逆序;数组对象也同样适用。

    const arrSplice=[1,2,3,5,6];
    // const arrSpliceResult1=arrSplice.splice(0,2,44,55);//返回[1,2]
    // const arrSpliceResult2=arrSplice.splice(1,0,66);
    // const arrSpliceResult3=arrSplice.splice(4,4,'a','b','c');//删除四个,添加三个
    // const arrSpliceResult4=arrSplice.splice(-2,2,'e','f','g');
    // const arrSpliceResult5=arrSplice.splice(0,2,[77,88],{name:'小明',age:18});
    console.log('splice',arrSplice);
    // console.log('splice',arrSpliceResult2);

//12.Array.forEach();用于调用数组中的每个元素,并将元素传递给回调函数。原数组不变。(注意该方法和map的区别,若直接打印Array.forEach,结果为undefined)

//13.Array.filter();过滤数组中,符合条件的元素并返回一个新的数组。

    const arrFilter=[{name:'小明',age:'18'},{name:'小王',age:'20'}];
    const arrFilterResult=arrFilter.filter((arr)=>{return arr.age>18});
    console.log('filter',arrFilterResult);

//14.Array.every();对数组中的每一项进行判断,若都符合则返回true,否则返回false;不改变原数组

    const arrEvery=[1,2,3,4];
    const arrEveryResult=arrEvery.every((arr)=>{return arr>1});
    console.log(arrEvery,arrEveryResult);
    const arrEvery1=[{name:'小明',age:'19'},{name:'小王',age:'52'}];
    const arrEveryResult1=arrEvery1.every((arr)=>arr.age>18);
    console.log('every',arrEveryResult1,arrEvery1);

//15.Array.some(function);对数组中的每一项进行判断,若都不符合返回false,有一项或者多项就返回true

//16.Array.reduce((arr)=>);reduce()方法接受一个函数作为累加器,数组中的每个值(从左到右)开始缩减,最终计算为一个值,不改变原数组

    const arrReduce=[1,2,3,4];
    const arrReduceResult=arrReduce.reduce((a,b)=>a-b);//累加器,累减器件
    console.log(arrReduceResult,arrReduce);