js 如何高效的找到数组中的某一项

JavaScript013

js 如何高效的找到数组中的某一项,第1张

1、如果知道数组下标,直接 arr[index]方式获取

2、假设不知道数组下标,查找某一项值,例如: 数组 arr = ['red', 'green', 'yellow', 'green', 'blue'];查找 green:

var myFirstIndex = Array.indexOf(arr, "green")// 返回1

indexOf查找指定项的索引位置。 返回的索引是在 item 中指定的项的第一次出现。 如果找不到,则返回-1。再次调用该函数,并指定大于所找到元素的索引的起始索引值,可查找 item 的下一次出现。例如:

var mySecondIndex = Array.indexOf(Array, "green", (myFirstIndex + 1) )// 返回3

可以用find或filter方法:find:(返回符合条件的第一个元素,返回值是单个对象)var obj=arrs.find(e=>e.FNo=='50228888')filter:(返回符合条件的所有元素,返回值是数组)var arr=arrs.filter(e=>e.FNo=='50228888')

所谓二分法查找法,也就是折半查找,它是一种在有序数组查找特定元素的搜索算法。

参考《前端程序员面试秘籍》

思想:从数组中开始查找,如果该元素是要搜索的目标元素,则循环结束,如果不是继续下一步,如果目标元素大于或者小于中间元素,则在数组大于或者小于中间元素的那一半区域进行查找,进而重复上面操作。如果数组是空的,则找不到该目标元素。