js数组主要有哪些方法?主要参数有哪些?

2020-07-28 11:09发布

3条回答
慢半拍
2021-10-25 11:40

一、创建数组

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);//2  let arr1 = Array.of(3); console.log(arr1.length);//1 console.log(arr1[0]);//3  let arr2 = Array.of( 2 ); console.log(arr2.length);//1 console.log(arr2[0]);// 2

4. 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 值

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"]

二、数组方法

数组原型方法主要有以下这些:

  • join():用指定的分隔符将数组每一项拼接为字符串

  • push() :向数组的末尾添加新元素

  • pop():删除数组的最后一项

  • shift():删除数组的第一项

  • unshift():向数组首位添加新元素

  • slice():按照条件查找出其中的部分元素

  • splice():对数组进行增删改

  • fill():方法能使用特定值填充数组中的一个或多个元素

  • filter():“过滤”功能

  • concat():用于连接两个或多个数组

  • indexOf():检测当前值在数组中第一次出现的位置索引

  • lastIndexOf():检测当前值在数组中最后一次出现的位置索引

  • every():判断数组中每一项都是否满足条件

  • some():判断数组中是否存在满足条件的项

  • includes():判断一个数组是否包含一个指定的值

  • sort():对数组的元素进行排序

  • reverse():对数组进行倒序

  • forEach():ES5 及以下循环遍历数组每一项

  • map():ES6 循环遍历数组每一项

  • copyWithin():用于从数组的指定位置拷贝元素到数组的另一个指定位置中

  • find():返回匹配的值

  • findIndex():返回匹配位置的索引

  • toLocaleString()、toString():将数组转换为字符串

  • flat()、flatMap():扁平化数组

  • entries() 、keys() 、values():遍历数组


一周热门 更多>