var arr_data = [1,2,3]
arr_data.indexOf(1)//如果存在返回值的下标,不存在返回-1
2.jquery的$.inArray()方法
$.inArray(1, arr_data)//如果存在返回值的下标,不存在返回-1
3.arr.find()
数组实例的find()用于找出第一个符合条件的数组元素。它的参数是一个回调函数,所有的数组元素依次遍历该回调函数,直到找出第一个返回值为true的元素,然后返回该元素,否则返回undefined。
注意:find()对于空数组,函数是不会执行的。find()并没有改变数组的原始值
4.arr.findIndex()返回第一个符合条件的数组元素的位置,如果所有的元素都不符合条件,则返回-1.
注意:find(),findIndex()弥补了index的不足:(即判断NAN)
[NaN].indexOf(NaN) // -1
[NaN].findIndex(y =>Object.is(NaN, y))
5.最常见的就是 for和if 的组合
注意: 这里forEach return false 是阻止不了循环的行为;
js获取元素方法有:1、getElementById :根据指定的 id 属性值得到对象。返回 id 属性值等于 sID 的第一个对象的引用。假如对应的为一组对象,则返回该组对象中的第一个。
2、getElementsByName:getElementsByName(name)该方法与 getElementById() 方法相似,但是它查询元素的 name 属性,而不是 id 属性。
另外,因为一个文档中的 name 属性可能不唯一(如 HTML 表单中的单选按钮通常具有相同的 name 属性),所以getElementsByName() 方法返回的是所有匹配元素组成的数组,而不是一个元素。
3、getElementsByTagName:getElementsByTagName() 方法会使用指定的标签名返回所有的元素(作为一个节点列表),这些元素是您在使用此方法时所处的元素的后代。
getElementsByTagName() 可被用于任何的 HTML 元素
如果把特殊字符串 "*" 传递给 getElementsByTagName() 方法,它将返回文档中所有元素的列表,元素排列的顺序就是它们在文档中的顺序。
传递给 getElementsByTagName() 方法的字符串可以不区分大小写。
通过线性查找检索出现在视口内的元素,效率较低 比如 js寻找在视口内的元素-线性查找 对100个元素进行查找,需要循环100次,或者找到之后跳出循环。通过二分查找改进,先找到一个出现在视口内的元素,再从它的上下查找。
码