虽然我很菜,但是我很猛。 // 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);
//总结:删除的都是删除第一个或者最后一个元素,但是添加的可以前后添加一个或者多个元素;
//原数组改变的数组方法(sort;pop,unshift,shift,push)
//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);