查找:上代码.
function isBigEnough(element) { return element >= 15; } var ret1 = [12, 5, 8, 130, 44].findIndex(isBigEnough); console.log(ret1); // index of 4th element in the Array is returned, // so this will result in ‘3‘ var objArr = [{id:1, name:‘jiankian‘}, {id:23, name:‘anan‘}, {id:188, name:‘superme‘}, {id:233, name:‘jobs‘}, {id:288, name:‘bill‘, age:89}, {id:333}] ; var ret2 = objArr.findIndex((v) => { return v.id == 233; }); console.log(ret2); // return 3
findIndex()
方法返回数组中满足提供的测试函数的第一个元素的索引。否则返回-1。
语法:
arr.findIndex(callback[, thisArg])
参数:
callback
针对数组中的每个元素, 都会执行该回调函数, 执行时会自动传入下面三个参数:
element
- 当前元素。
index
- 当前元素的索引。
array
- 调用
findIndex
的数组。
thisArg
可选。执行callback
时作为this
对象的值.
描述:
findIndex
方法对数组中的每个数组索引0..length-1
(包括)执行一次callback
函数,直到找到一个callback
函数返回真实值(强制为true
)的值。如果找到这样的元素,findIndex
会立即返回该元素的索引。如果回调从不返回真值,或者数组的length
为0,则findIndex
返回-1。 与某些其他数组方法(如Array#some)不同,在稀疏数组中,即使对于数组中不存在的条目的索引也会调用回调函数。
回调函数调用时有三个参数:元素的值,元素的索引,以及被遍历的数组。
如果一个 thisArg
参数被提供给 findIndex
, 它将会被当作this
使用在每次回调函数被调用的时候。如果没有被提供,将会使用undefined
。
findIndex
不会修改所调用的数组。
在第一次调用callback
函数时会确定元素的索引范围,因此在findIndex
方法开始执行之后添加到数组的新元素将不会被callback
函数访问到。如果数组中一个尚未被callback
函数访问到的元素的值被callback
函数所改变,那么当callback
函数访问到它时,它的值是将是根据它在数组中的索引所访问到的当前值。被删除的元素仍然会被访问到。
示例
查找数组中首个质数元素的索引
以下示例查找数组中素数的元素的索引(如果不存在素数,则返回-1)。
function isPrime(element, index, array) { var start = 2; while (start <= Math.sqrt(element)) { if (element % start++ < 1) { return false; } } return element > 1; } console.log([4, 6, 8, 12].findIndex(isPrime)); // -1, not found console.log([4, 6, 7, 12].findIndex(isPrime)); // 2
删除:上代码.
var myFish = [‘angel‘, ‘clown‘, ‘mandarin‘, ‘sturgeon‘]; myFish.splice(2, 0, ‘drum‘); // 在索引为2的位置插入‘drum‘ // myFish 变为 ["angel", "clown", "drum", "mandarin", "sturgeon"] myFish.splice(2, 1); // 从索引为2的位置删除一项(也就是‘drum‘这一项) // myFish 变为 ["angel", "clown", "mandarin", "sturgeon"]
语法
array.splice(start) array.splice(start, deleteCount) array.splice(start, deleteCount, item1, item2, ...)
参数
start?
- 指定修改的开始位置(从0计数)。如果超出了数组的长度,则从数组末尾开始添加内容;如果是负值,则表示从数组末位开始的第几位(从-1计数);若只使用start参数而不使用deleteCount、item,如:array.splice(start) ,表示删除[start,end]的元素。
deleteCount
可选- 整数,表示要移除的数组元素的个数。如果
deleteCount
是 0,则不移除元素。这种情况下,至少应添加一个新元素。如果deleteCount
大于start
之后的元素的总数,则从start
后面的元素都将被删除(含第start
位)。 - 如果deleteCount被省略,则其相当于(arr.length - start)。
item1, item2, ...
可选- 要添加进数组的元素,从
start
位置开始。如果不指定,则splice()
将只删除数组元素。
splice方法使用deleteCount参数来控制是删除还是添加:
start参数是必须的,表示开始的位置(从0计数),如:start=0从第一个开始;start>= array.length-1表示从最后一个开始。
①、从start位置开始删除[start,end]的元素。
array.splice(start)
②、从start位置开始删除[start,Count]的元素。
array.splice(start, deleteCount)
③、从start位置开始添加item1, item2, ...元素。
array.splice(start, 0, item1, item2, ...)
返回值
由被删除的元素组成的一个数组。如果只删除了一个元素,则返回只包含一个元素的数组。如果没有删除元素,则返回空数组。
描述
如果添加进数组的元素个数不等于被删除的元素个数,数组的长度会发生相应的改变。
提示和注释
注释:请注意,splice() 方法与 slice() 方法的作用是不同的,splice() 方法会直接对数组进行修改。
示例
从第2位开始删除0个元素,插入“drum”
var myFish = ["angel", "clown", "mandarin", "surgeon"]; //从第 2 位开始删除 0 个元素,插入 "drum" var removed = myFish.splice(2, 0, "drum"); //运算后的 myFish:["angel", "clown", "drum", "mandarin", "surgeon"] //被删除元素数组:[],没有元素被删除
从第3位开始删除1个元素
var myFish = [‘angel‘, ‘clown‘, ‘drum‘, ‘mandarin‘, ‘sturgeon‘]; var removed = myFish.splice(3, 1); //运算后的myFish:["angel", "clown", "drum", "sturgeon"] //被删除元素数组:["mandarin"]
从第2位开始删除1个元素,然后插入“trumpet”
var myFish = [‘angel‘, ‘clown‘, ‘drum‘, ‘sturgeon‘]; var removed = myFish.splice(2, 1, "trumpet"); //运算后的myFish: ["angel", "clown", "trumpet", "surgeon"] //被删除元素数组:["drum"]
从第0位开始删除2个元素,然后插入"parrot","anemone"和"blue"
var myFish = [‘angel‘, ‘clown‘, ‘trumpet‘, ‘sturgeon‘]; var removed = myFish.splice(0, 2, ‘parrot‘, ‘anemone‘, ‘blue‘); // 运算后的myFish: ["parrot", "anemone", "blue", "trumpet", "sturgeon"] // 被删除元素数组:["angel", "clown"]
从第2位开始删除2个元素
var myFish = [‘parrot‘, ‘anemone‘, ‘blue‘, ‘trumpet‘, ‘sturgeon‘]; var removed = myFish.splice(myFish.length - 3, 2); // 运算后的myFish: ["parrot", "anemone", "sturgeon"] // 被删除元素数组:["blue", "trumpet"]
从第2位开始删除所有元素
var myFish = [‘angel‘, ‘clown‘, ‘mandarin‘, ‘sturgeon‘]; var removed = myFish.splice(2); // 运算后的myFish :["angel", "clown"] // 被删除的元素数组: ["mandarin", "sturgeon"]
原文地址:https://www.cnblogs.com/mophy/p/8608834.html