js中数组的常用方法

69 阅读3分钟

数组的常用方法

方法作用返回值改变原数组
pop()删除数组中最后一个元素返回删除的元素
shift()删除数组中第一个元素返回删除的元素
push()在结尾添加一个或多个元素返回新数组的长度
unshift()在开头添加一个或多个元素返回新数组的长度
splice()在指定位置删除指定个数元素在增加任意个数元素(实现任意位置的增删改)返回删除数据组成的数组
filter()(迭代)遍历数组,每次循环时执行传入的回调函数,回调函数返回一个条件,把满足条件的元素筛选出来满足条件的元素组成的新数组
includes()用来判断一个数组中是否包含一个指定的值包含true,不包含false
map()创建一个新数组,这个数组由原数组中的每一个元素都调用一次提供的函数后的返回值组成新数组
indexOf()查询数组中指定元素的下标,如果不存在返回-1指定元素的下标,不存在返回-1
slice()裁切start到end位置的数组,(包含start,不包含end)被裁切的元素形成数组
join()用特定的字符将数组拼接成字符串,默认为","返回拼接后的字符串
every()(迭代)判断数组中所有元素是否满足某一个条件全部满足返回true, 只要有一个不满足返回false
some()(迭代)判断数组中是否存在满足某个条件的元素只要有一个满足就返回true,全不满足才会返回false

1. splice方法

在指定位置删除指定个数元素再增加任意个数元素 (实现数组任意位置的增删改) 允许接收三个参数

  1. start 从 0 开始计算的索引,表示要开始改变数组的位置
  2. deleteCount (可选) 一个整数,表示数组中要从 start 开始删除的元素数量。
  3. item1...itemN (可选)从 start 开始要加入到数组中的元素。
splice(start)
splice(start, deleteCount)
splice(start, deleteCount, item1)
splice(start, deleteCount, item1, item2)
splice(start, deleteCount, item1, item2, /* …, */ itemN)
// 在索引 2 处移除 0 个元素,并插入“drum”
const myFish = ["angel", "clown", "mandarin", "sturgeon"];
const removed = myFish.splice(2, 0, "drum");

// myFish 是 ["angel", "clown", "drum", "mandarin", "sturgeon"]
// removed 是 [],没有移除的元素
// 在索引 3 处删除一个元素 
const myFish = ["angel", "clown", "drum", "mandarin", "sturgeon"];
const removed = myFish.splice(3, 1);

// myFish 是 ["angel", "clown", "drum", "sturgeon"]
// removed 是 ["mandarin"]
// 删除从索引为2以后的全部元素
const myFish = ["angel", "clown", "mandarin", "sturgeon"];
const removed = myFish.splice(2);

// myFish 是 ["angel", "clown"]
// removed 是 ["mandarin", "sturgeon"]

2. slice()方法

裁切指定位置的数组,返回值为被裁切的元素形成的新数组 ,不改变原数组
同concat() 方法 slice() 如果不传参数,会使用默认值,得到一个与原数组元素相同的新> > 数组 (复制数组) 允许接收两个参数:

  1. startIndex 起始下标 默认值 0
  2. endIndex 终止下标 默认值 length,可以接收负数,(倒着数)

注意!起始下标和终止下标的区间是 左闭右开 [ a ,b) 能取到起始,取不到终止

const animals = ['ant', 'bison', 'camel', 'duck', 'elephant'];

console.log(animals.slice(2));
// Expected output: Array ["camel", "duck", "elephant"]

console.log(animals.slice(2, 4));
// Expected output: Array ["camel", "duck"]

console.log(animals.slice(1, 5));
// Expected output: Array ["bison", "camel", "duck", "elephant"]

console.log(animals.slice(-2));
// Expected output: Array ["duck", "elephant"]

console.log(animals.slice(2, -1));
// Expected output: Array ["camel", "duck"]

console.log(animals.slice());
// Expected output: Array ["ant", "bison", "camel", "duck", "elephant"]