22个超详细的 JS 数组方法

作者:Yushia
https://juejin.cn/post/6907109642917117965

数组是 js 中最常用到的数据集合,其内置的方法有很多,熟练掌握这些方法,可以有效的提高我们的工作效率,同时对我们的代码质量也是有很大影响 。
一、创建数组1.使用数组字面量表示法var arr4 = [];   //创建一个空数组var arr5 = [20];   // 创建一个包含1项数据为20的数组var arr6 = ["lily","lucy","Tom"];   // 创建一个包含3个字符串的数组2.使用 Array 构造函数无参构造var arr1 = new Array();   //创建一个空数组带参构造如果只传一个数值参数,则表示创建一个初始长度为指定数值的空数组
var arr2 = new Array(20);   // 创建一个包含20项的数组如果传入一个非数值的参数或者参数个数大于 1,则表示创建一个包含指定元素的数组
var arr3 = new Array("lily","lucy","Tom");   // 创建一个包含3个字符串的数组var array4 = new Array( 23 ); // ["23"]3.Array.of 方法创建数组(es6 新增)ES6 为数组新增创建方法的目的之一,是帮助开发者在使用 Array 构造器时避开 js 语言的一个怪异点 。
Array.of()方法总会创建一个包含所有传入参数的数组,而不管参数的数量与类型 。
let arr = Array.of(1, 2);console.log(arr.length);//2let arr1 = Array.of(3);console.log(arr1.length);//1console.log(arr1[0]);//3let arr2 = Array.of( 2 );console.log(arr2.length);//1console.log(arr2[0]);// 24.Array.from 方法创建数组(es6 新增)在 js 中将非数组对象转换为真正的数组是非常麻烦的 。在 ES6 中,将可迭代对象或者类数组对象作为第一个参数传入,Array.from()就能返回一个数组 。
function arga(...args) {  //...args剩余参数数组,由传递给函数的实际参数提供    let arg = Array.from(args);    console.log(arg);}arga( arr1 , 26,  from ); // [ arr1 ,26, from ]映射转换如果你想实行进一步的数组转换,你可以向 Array.from()方法传递一个映射用的函数作为第二个参数 。此函数会将数组对象的每一个值转换为目标形式,并将其存储在目标数组的对应位置上 。
function arga(...args) {       return Array.from(args, value => value + 1);}let arr = arga( arr , 26,  pop );console.log(arr);//[ arr1 ,27, pop1 ]如果映射函数需要在对象上工作,你可以手动传递第三个参数给 Array.from()方法,从而指定映射函数内部的 this 值
【22个超详细的 JS 数组方法】const helper = {  diff: 1,  add(value) {    return value + this.diff;  }}function translate() { //arguments 是一个对应于传递给函数的参数的类数组对象  return Array.from(arguments, helper.add, helper); }let arr = translate( liu , 26,  man );console.log(arr); // ["liu1", 27, "man1"]二、数组方法数组原型方法主要有以下这些