Array.prototype.find(fn)
返回数组中,满足提供的测试函数的条件的第一个元素的值,否则返回undefined。
几个注意点:
1 返回的是满足条件的第一个元素,而不是所有的满足元素
2 如果都不满足返回undefined。而不是-1
3 find方法不改变原来的数组

4 在第一次调用fn时,就确定了查找的范围,因此如果调用了一次fn后再次给数组添加元素,那么新添加的元素将不会被查找到。如果删除了一个未被遍历到的元素,被删除的元素仍然能够被查找到,只不过被删除元素的值已经为undefined。
如下图所示:在第一次遍历时,删除了数组中的最后一个元素6。遍历时仍然能够遍历到这个元素,但是该位置的值变成了undefined。

Array.prototype.findIndex(fn)
findIndex()返回的是满足条件的第一个元素的索引,不满足返回-1.其他的使用同find相同.
几个注意点:
1. 返回的是满足条件的第一个元素的索引
2. 如果都不满足返回-1
3. findIndex()方法不改变原来的数组

4.findIndex()方法在第一次调用回调函数时就确定了索引的范围,范围为[0,len-1]。在回调函数中如果进行了新的元素的添加,那么这个新添加的元素的索引无法被查找到。

5.findIndex()方法在第一次调用回调函数时就确定了索引的范围,范围为[0,len-1]。在回调函数中如果删除了元素,那么这个删除的元素也能够被查找到。

findIndex()和IndexOf的区别:
findIndex()是查找数组中满足条件的第一个元素的索引。虽然返回的是数组中的元素,但是是通过函数来今次那个筛选的。测试函数可以通过很多功能来进行筛选,而不仅仅是判断其是否存在。
indexOf()是查找数组中是否存在某个元素,如果存在即返回其索引。也即是说只是判断了是否存在,功能比较狭窄。
Array.prototype.copyWithin(position,start,end)
copy:表示复制,拷贝。within:表示在...以内。合起来的意思就是在原数组内进行浅拷贝。其中position表示开始替换的位置,start和end是表示要拷贝的元素的位置。

注意:
copyWithin()方法改变原数组,但是不改变原数组的长度
Array.prototype.fill(value,start,end)
从数值的start位置到end(不包括end)的位置,用value进行填充。

网友评论