迟早要知道的JS系列之常用数组方法 (2)

**返回值 **
返回指定元素(也即有效的 JavaScript 值或变量)在数组中的最后一个的索引,如果不存在则返回 -1。从数组的后面向前查找,从 fromIndex 处开始。

实例:

var array = [2, 5, 9, 2]; var index = array.lastIndexOf(2); // index is 3 index = array.lastIndexOf(7); // index is -1 index = array.lastIndexOf(2, 3); // index is 3 index = array.lastIndexOf(2, 2); // index is 0 index = array.lastIndexOf(2, -2); // index is 0 index = array.lastIndexOf(2, -1); // index is 3 二.会改变原始数组的方法:

下面的这些方法会改变调用它们的对象自身的值:

1.splice()

** 语法:**
array.splice(start,deleteCount, item1,item2, ..)
参数:
*** start***
指定修改的开始位置(从0计数)。如果超出了数组的长度,则从数组末尾开始添加内容;

如果是负值,则表示从数组末位开始的第几位(从-1计数,这意味着-n是倒数第n个元素并且等价于array.length-n);

如果负数的绝对值大于数组的长度,则表示开始位置为第0位。

*** deleteCount(可选)***
整数,表示要移除的数组元素的个数。
如果 deleteCount 大于 start 之后的元素的总数,则从 start 后面的元素都将被删除(含第 start 位)。

如果 deleteCount 被省略了,或者它的值大于等于array.length - start(也就是说,如果它大于或者等于start之后的所有元素的数量),那么start之后数组的所有元素都会被删除。

如果 deleteCount 是 0 或者负数,则不移除元素。这种情况下,至少应添加一个新元素。

**返回值 **
通过删除或替换现有元素或者原地添加新的元素来修改数组,并以数组形式返回被修改的内容,如果只删除了一个元素,则返回只包含一个元素的数组。

如果没有删除元素,则返回空数组。此方法会改变原数组。

实例:

//1.从第 2 位开始删除 0 个元素,插入“drum” var myFish = ["angel", "clown", "mandarin", "sturgeon"]; //1-5同 var removed = myFish.splice(2, 0, "drum"); // 运算后的 myFish: ["angel", "clown", "drum", "mandarin", "sturgeon"] // 被删除的元素: [], 没有元素被删除 --removed的返回值下同 //2.从第 2 位开始删除 0 个元素,插入“drum” 和 "guitar" var removed = myFish.splice(2, 0, 'drum', 'guitar'); // 运算后的 myFish: ["angel", "clown", "drum", "guitar", "mandarin", "sturgeon"] // 被删除的元素: [], 没有元素被删除 //3.从第 3 位开始删除 1 个元素 var removed = myFish.splice(3, 1); // 运算后的 myFish: ["angel", "clown", "drum", "sturgeon"] // 被删除的元素: ["mandarin"] //4.从第 2 位开始删除 1 个元素,插入“trumpet” var removed = myFish.splice(2, 1, "trumpet"); // 运算后的 myFish: ["angel", "clown", "trumpet", "sturgeon"] // 被删除的元素: ["drum"] //5.从第 0 位开始删除 2 个元素,插入"parrot"、"anemone"和"blue" var removed = myFish.splice(0, 2, 'parrot', 'anemone', 'blue'); // 运算后的 myFish: ["parrot", "anemone", "blue", "trumpet", "sturgeon"] // 被删除的元素: ["angel", "clown"] //6.从第 2 位开始删除 2 个元素 var myFish = ['parrot', 'anemone', 'blue', 'trumpet', 'sturgeon']; var removed = myFish.splice(myFish.length - 3, 2); // 运算后的 myFish: ["parrot", "anemone", "sturgeon"] // 被删除的元素: ["blue", "trumpet"] //7.从倒数第 2 位开始删除 1 个元素 var myFish = ['angel', 'clown', 'mandarin', 'sturgeon']; var removed = myFish.splice(-2, 1); // 运算后的 myFish: ["angel", "clown", "sturgeon"] // 被删除的元素: ["mandarin"] //8.从第 2 位开始删除所有元素 var myFish = ['angel', 'clown', 'mandarin', 'sturgeon']; var removed = myFish.splice(2); // 运算后的 myFish: ["angel", "clown"] // 被删除的元素: ["mandarin", "sturgeon"] 2.pop()

** 语法:**
arr.pop()

**返回值 **
从数组中删除最后一个元素,并返回该元素的值。此方法更改数组的长度。当数组为空时返回undefined

实例:

let myFish = ["angel", "clown", "mandarin", "surgeon"]; let popped = myFish.pop(); console.log(myFish); // ["angel", "clown", "mandarin"] console.log(popped); // surgeon 3.push()

** 语法:**
arr.push(element1, ..., elementN)

参数:
elementN
被添加到数组末尾的元素。

返回值 **
将一个或多个元素添加到数组的末尾,并返回该数组的新长度。
新的 length 属性值将被返回。**

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zwggsp.html