数组操作方法大全

话不多说,先上大纲,从目录来来回顾数组的各种操作方法,具体的使用方法在接下来会详细列出。

在这里插入图片描述


接下来是各个方法的具体使用方法:
数组:(ES6) callback[, thisArg] 其中: thisArg为callback函数的三个参数的总称---- value, index, currentArr

数组遍历处理:

  1. array.forEach(callback[, thisArg])
  2. array.every(callback[, thisArg]);

检测数组中的每一个元素是否全部通过了callback测试,全部通过返回true,否则返回false。>在这里插入图片描述

  1. array.some(callback[, thisArg]);

判断数组中是否包含可以通过callback测试的元素,与every不同的是,这里只要某一个元素通过测试,即返回true。callback定义同上。在这里插入图片描述

  1. array.filter(callback[, thisArg]);

返回一个新数组,包含通过callback函数测试的所有元素。在这里插入图片描述

  1. array.map(callback[, thisArg])
  1. 返回一个新数组,新数组中的每个元素都是调用callback函数后返回的结果。
  2. array.map由于不具有过滤的功能,因此array调用map函数时,如果array中的数据并不是每一个都会return,则必须先filter,然后再map,即map调用时必须是对数组中的每一个元素都有效。
  3. 注意:如果没有return值,则新数组会插入一个undefined值在这里插入图片描述
  1. array.reduce(callback[, initialValue]);
  1. 对数组中的每个元素(从左到右)执行callback函数累加,将其减少为单个值。
  2. function callback(accumulator, currentValue, currentIndex, array) { }
  3. accumulator代表累加器的值,初始化时,如果initialValue有值,则accumulator初始化的值为initialValue,整个循环从第一个元素开始;initialValue无值,则accumulator初始化的 值为数组第一个元素的值,currentValue为数组第二个元素的值,整个循环从第二个元素开始。initialValue的数据类型可以是任意类型,不需要跟原数组内的元素值类型一致。在这里插入图片描述

数组元素查找:

  1. array.find(callback[, thisArg]);
  1. 返回通过callback函数测试的第一个元素,否则返回undefined。
  2. 注: 如果你需要找到一个元素的位置或者一个元素是否存在于数组中,使用 Array.prototype.indexOf()Array.prototype.includes()
    在这里插入图片描述
  1. array.findIndex(callback[, thisArg]);

返回通过callback函数测试的第一个元素的索引,否则返回-1。在这里插入图片描述

  1. array.indexOf(searchElement[, fromIndex = 0])

返回在数组中可以找到一个给定元素的第一个索引,如果不存在,则返回-1。searchElement:要查找的元素;fromIndex:开始查找的索引位置。
在这里插入图片描述

  1. array.includes(searchElement, fromIndex)

includes() 方法用来判断一个数组是否包含一个指定的值,返回 true或 false。searchElement:要查找的元素;fromIndex:开始查找的索引位置。
在这里插入图片描述


数组基本操作

  1. array.concat(array1, array2,…arrayN);

合并多个数组,返回合并后的新数组,原数组没有变化。
在这里插入图片描述

  1. array.join(separator=’,’)

将数组中的元素通过separator连接成字符串,并返回该字符串,separator默认为","
在这里插入图片描述

  1. array.pop() 与 array.shift()

pop为从数组中删除最后一个元素,并返回最后一个元素的值,原数组的最后一个元素被删除。数组为空时返回undefined
在这里插入图片描述
shift删除数组的第一个元素,并返回第一个元素,原数组的第一个元素被删除。数组为空返回undefined。
在这里插入图片描述

  1. array.push(element1, element2, …elementN) 与 array.unshift(element1, element2, …elementN)

push是将一个或多个元素添加到数组的末尾,并返回新数组的长度; unshift将一个或多个元素添加到数组的开头,并返回新数组的长度。唯一的区别就是插入的位置不同。
在这里插入图片描述
push和unshift方法具有通用性,通过call()或者apply()方法调用可以完成合并两个数组的操作。
在这里插入图片描述

  1. array.reverse()

将数组中元素的位置颠倒
在这里插入图片描述

  1. array.slice(begin, end)

返回一个新数组,包含原数组从begin 到 end(不包含end)索引位置的所有元素。
在这里插入图片描述

  1. array.sort([compareFunction])

对数组中的元素进行排序,compareFunction不存在时,元素按照转换为的字符串的诸个字符的Unicode位点进行排序,慎用!请使用时一定要加compareFunction函数,而且该排序是不稳定的。
在这里插入图片描述

  1. array.splice(start[, deleteCount, item1, item2, …])
  1. 通过删除现有元素和/或添加新元素来更改一个数组的内容。start:指定修改的开始位置;deleteCount:从 start位置开始要删除的元素个数;item…:要添加进数组的元素,从start 位置开始。
  2. 返回值是由被删除的元素组成的一个数组。如果只删除了一个元素,则返回只包含一个元素的数组。如果没有删除元素,则返回空数组。如果 deleteCount 大于start 之后的元素的总数,则从 start 后面的元素都将被删除(含第 start 位)
    在这里插入图片描述
  1. arr.fill()
  1. [‘a’, ‘b’, ‘c’].fill(7)
    // [7, 7, 7]
  2. new Array(3).fill(7)
    // [7, 7, 7]
  3. fill方法还可以接受第二个和第三个参数,用于指定填充的起始位置和结束位置。
    [‘a’, ‘b’, ‘c’].fill(7, 1, 2)
    // [‘a’, 7, ‘c’]
  4. 填充的类型为对象,那么被赋值的是同一个内存地址的对象,而不是深拷贝对象
    let arr = new Array(3).fill({name: “Mike”});
    arr[0].name = “Ben”;
    arr
    // [{name: “Ben”}, {name: “Ben”}, {name: “Ben”}]
    let arr = new Array(3).fill([]);
    arr[0].push(5);
    arr
    // [[5], [5], [5]]
发布了27 篇原创文章 · 获赞 4 · 访问量 6285

猜你喜欢

转载自blog.csdn.net/studentenglish/article/details/95249736