目录

 find()

indexof与findindex的区别 

 indexOf ()

 findIndex()

includes()

some()



 find()

找到第一个之后不再继续找了,找不到就是undefined

例:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>find和findindex</title>
	</head>
	<body>
		<script type="text/javascript">
			let ary = [{
					class: 1,
					name: '张三'
				}, {
					class: 2,
					name: '李四'
				},
				{
					class: 3,
					name: '李四'
				}, 
			];
				// find用来查找第一个出现的数据,如果找不到就会返回undefined
			let target = ary.find((item,index)=>item.name=== '李四')
			/* let target=ary.find(function(item,index){        // es6以下语法
				return item.name=== '李四'
			}) */
			console.log(target);        
		</script>
	</body>
</html>

效果: 

     let target = ary.find((item,index)=>item.name=== '李四111')    //undefined

效果:

indexof与findindex的区别 


 indexOf ()

找到这个参数所在的索引,采用 === 比较,一般是用于查找基本类型,如果是对象类型,则是判断是否是同一个对象的引用.找到就返回元素位置,找不到就返回-1

 先看个indexof的例子:

let ary = [1, 5, 10, 15, 20, 30];
         //0, 1, 2,  3,  4,  5
			 let target = ary.indexOf(30)
         //  let target = ary.indexOf(2)        //-1
			 console.log(target);        //5

 

 findIndex()

findIndex()函数也是查找目标元素,找到就返回元素的位置,找不到就返回-1,多用于非基本类型(例如对象)的数组索引查找,或查找条件很复杂 

看段代码:

  let a = [1, 5,8, 15,30,50];
		   
		   let index = a.findIndex((value, index) => value > 7); 
		//    let index=a.findIndex(function(b, index){
		// 	   return b > 7;
		//    })
		   console.log(index); // 2


共同点:都是用来查找回调函数。


不同点:indexof主要用于查找基本数据类型 ,findIndex()可以用于查找复杂数据类型

includes()

判断某个数组是否包含给定的值,返回布尔值。

例如:查找这个数组中有没有存在某一个数,如果有返回true,如果没有返回false

var ages = [3, 10, 18, 20];
console.log(ages.includes(3));//true

some()

语法:

array.some(function(currentValue,index,arr),thisValue)

参数描述
function(currentValue, index,arr)

必须。函数,数组中的每个元素都会执行这个函数 函数参数:。

参数描述currentValue必须。当前元素的值index可选。

当前元素的索引值arr可选。当前元素属于的数组对象

thisValue可选。对象作为该执行回调时使用,传递给函数,用作 "this" 的值。 如果省略了 thisValue ,"this" 的值为 "undefined"

some() 方法用于检测数组中的元素是否满足指定条件(函数提供),会依次执行数组的每个元素:

查找checkAdult这个方法中是否满足大于21的这个条件,如果有,返回true;如果没有,返回false 。

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>some()</title>
	</head>
	<body>
		<div id="demo">
			
		</div>
		<script>
			var ages = [3, 10, 18, 20];
			function checkAdult(age) {
			  return age >= 21;
			}
			function myFunction() {
			  document.getElementById("demo").innerHTML = ages.some(checkAdult);    //false
			}
			myFunction()
		</script>
	</body>
</html>

效果:

注意: some() 不会对空数组进行检测。

注意: some() 不会改变原始数组。 


本文转载:CSDN博客