小知识,大挑战!本文正在参与“程序员必备小知识”创作活动
操作方法
splice()的主要目的是在数组中间插入元素,但有 3 种不同的方式使用这个方法。
1、删除。需要给 splice()传 2 个参数:要删除的第一个元素的位置和要删除的元素数量。可以从数组中删除任意多个元素,比如 splice(0, 3)会删除前三个元素。
2、 插入。需要给 splice()传 3 个参数:开始位置、0(要删除的元素数量)和要插入的元素,可 以在数组中指定的位置插入元素。第三个参数之后还可以传第四个、第五个参数,乃至任意多 个要插入的元素。比如,splice(2, 0, "1", "2")会从数组位置 2 开始插入字符串 "1"和"2"。
3、 替换。splice()在删除元素的同时可以在指定位置插入新元素,同样要传入 3 个参数:开始位 置、要删除元素的数量和要插入的任意多个元素。要插入的元素数量不一定跟删除的元素数量 一致。比如,splice(2, 1, "3", "4")会在位置 2 删除一个元素,然后从该位置开始 向数组中插入"3"和"4"。 splice()方法始终返回这样一个数组,它包含从数组中被删除的元素(如果没有删除元素,则返 回空数组)。
demo.js
let nums = ["1", "2", "3"];
let removed = nums.splice(0,1); // 删除第一项
console.log(nums); // 2,3
console.log(removed); // 1,只有一个元素的数组
removed = nums.splice(1, 0, "4", "5"); // 在位置 1 插入两个元素
console.log(nums); // 2,4,5,3
console.log(removed); // 空数组
removed = nums.splice(1, 1, "1", "6"); // 插入两个值,删除一个元素
console.log(nums); // 2,1,6,5,3
console.log(removed); // yellow,只有一个元素的数组
搜索和位置方法
3个方法:indexOf()、lastIndexOf()和 includes()。
indexOf()和 includes()方法从数组前头(第一项) 开始向后搜索,而 lastIndexOf()从数组末尾(最后一项)开始向前搜索。
indexOf()和 lastIndexOf()都返回要查找的元素在数组中的位置,如果没找到则返回1。 includes()返回布尔值,表示是否至少找到一个与指定元素匹配的项。
demo.js
let study = ['web', 'java', 'php', 'python', 'linux'];
console.log(study.indexOf(4)); // python
console.log(study.lastIndexOf(4)); // web
console.log(study.includes('php')); // true