javascript高级-数组的使用方法
改变原数组返回一个新数组或不改变原数组的等应用场景,如下这些方法在实际项目中通常会用上
getArrlen() {//1.改变原数组的方法let arr = [1, 2, 3];arr.push(6); //给数组最后面的添加元素console.log('push', arr); //[1,2,3,6]arr.pop(); //删除数组最后面的元素console.log('pop', arr); //[1,2]arr.unshift('a'); //给数组最前面的添加元素console.log('unshift', arr); //['a',1,2,3]arr.shift(); //删除数组最前面的元素console.log('shift', arr); //[2,3]arr.splice(1, 1, 'b'); //(开始下标,删除个数,添加的项1,添加的项2)给数组中间插入元素console.log('splice-1-a', arr); //[1,'b',3]arr.splice(1, 1, 'b', 'o');console.log('splice-1-b', arr); //[1, 'b', 'o', 3]arr.splice(2, 1); //(开始下标,删除个数)删除数组中某个元素console.log('splice-2', arr); //[1,2]//2.返回一个新的数组let list1 = [1, 2];let list2 = [{ name: 'a' }, { age: 17 }];let concatArr = list1.concat(list2); //先创建当前数组一个副本,然后将接收到的参数添加到这个副本的末尾。最后返回新构建的数组。console.log('concat', concatArr); //[1,2,{ name: 'a' }, { age: 17 }]//3.原数组长度不发生变化let arr2 = ['a', 'b', 'c'];let str = arr2.join(); //使用指定的字符串拼接数组中的每个元素,组成一个字符串console.log('join', str); //a,b,carr2.reverse(); //数组中的元素反转console.log('reverse', str); //['c','b','a']let list = [5, 1, 30];list.sort(function (a, b) {//数组排序if (a < b) {return -1; //返回正数第一个放在后面。} else if (a > b) {return 1; //返回负数第一个数放在前面} else {return 0; //返回0不动了。}});console.log('sort', list); //[1,5,30]let arr3 = [{ name: 'ben', age: 17 },{ name: 'like', age: 20 },];arr3.forEach((item, index, sef) => {//遍历数组中的每一项,没有返回值//return index === 0;//直接写return会报错console.log('forEach', item, index, sef);});let array = [];let res = arr3.map((item, index, sef) => {console.log('map', item, index, sef);return array.push(index === 1 ? item : '');}); //遍历数组中的每一项,返回每次函数调用的结果组成的数组console.log('map', res, arr3, array);//[1,2]//[{ name: 'ben', age: 17 },{ name: 'like', age: 20 }],//['',{ name: 'like', age: 20 }]let array1 = [];let res1 = arr3.filter((item, index, sef) => {console.log('filter', item, index, sef);return array1.push(item.age === 17 ? item : '');}); //遍历数组中的每一项,返回该函数会返回true的项组成的数组console.log('filter', res1, arr3, array1);//[{ name: 'ben', age: 17 },{ name: 'like', age: 20 }]//[{ name: 'ben', age: 17 },{ name: 'like', age: 20 }]//[{ name: 'ben', age: 17 },'']let res2 = arr3.every((item, index) => {console.log('every', item, index);return item.age === 30;}); //遍历数组中的每一项,如果该函数对每一项都返回true,则返回falseconsole.log('every', res2, arr3); //false [{ name: 'ben', age: 17 },{ name: 'like', age: 20 }],let res4 = arr3.some((item, index, sef) => {console.log('some', item, index, sef);return item.age === 20;}); //遍历数组中的每一项,如果该函数对任一项返回true,则返回trueconsole.log('some', res4, arr3); //true [{ name: 'ben', age: 17 },{ name: 'like', age: 20 }],4; //转成数组的方法let res5 = Array.of(4, 5, 6);console.log('of', res5); //[4, 5, 6]function test() {let res6 = Array.from(arguments);console.log('from', res6); //[1,2,3]}test(1, 2, 3);},