JavaScript 数组 some() 方法
some() 方法用于测试数组中的每个元素是否至少有一个满足由提供的函数实现的测试。如果测试通过,则返回 true,否则返回 false。
注意:如果在空数组上应用 some() 方法,它总是返回 false。
语法
array.some(callback_funct(element, index, array), thisArg);
参数
callback_funct: 它是测试数组中每个元素的函数。它有以下三个参数:
- element: 它是当前正在处理的元素。
- index: 虽然它是可选的,但它是当前正在处理的元素的索引值。
- arr: 它是要对其执行some()方法的给定数组。
thisArg: 它是一个可选参数,在执行回调函数时用作’this’值。如果我们不提供,则将使用’undefined’作为’this’值。
返回值
它返回一个布尔值。如果找到一个元素返回true值给回调函数,它就返回true。否则返回false。
注意:array.some()方法不会影响原始数组。
注意事项
- 在第一次调用函数之前,需要设置实施some()方法的元素范围。
- 回调函数不会访问在调用some()方法后添加的元素。
- 它不适用于已删除的数组元素。
- 如果回调函数更改现有且未更改的元素,该值将被定义为数组。
JavaScript Array some()方法示例
让我们实施一些示例来更好地理解:
示例1
这是some()方法的一个简单实现。
<html>
<head> <h5> JavaScript Array Methods </h5> </head>
<body>
<script>
var arr=[12,81,23,34];
function test(arr)
{
return(arr>80);
} // test() will return a true value.
var ajen=arr.some(test);
document.write("Its "+ajen);
</script>
</body>
</html>
输出:
它测试了是否有任何元素大于80。因此,存在一个满足条件的元素。因此,some()函数返回True。
示例2
测试是否有任何数组元素包含相同的匹配项。
<html>
<head> <h5> JavaScript Array Methods </h5> </head>
<body>
<script>
var arr=['John','Tom','James','Sheero']; // An array is defined
function ismatching(arr)
{
return arr=='Sheero';
} //It matches if any element in the array is equal to Sheero.
var chk=arr.some(ismatching);
document.write("Yes, "+chk+". One match found.");
</script>
</body>
</html>
输出:
示例3
检查是否找到了任何偶数的数组元素。
<html>
<head> <h5> JavaScript Array Methods </h5> </head>
<body>
<script>
var arr=[2,3,4,6,9]; //Defining array elements
function check(arr)
{
return arr%2==0;
} //This function checks if any element is even or not.
var test=arr.some(check);
document.write("Yes, "+test);
</script>
</body>
</html>
输出:
示例4
我们也可以使用箭头函数来实现上面的示例。
<html>
<head> <h5> JavaScript Array Methods </h5> </head>
<body>
<script>
var arr=[2,3,4,6,9]; //Defining array elements
var check=(element)=>element%2===0;
document.write("Yes found. So, it should be ");
document.write(arr.some(check));
</script>
</body>
</html>
输出结果:
注意:如果some()方法在第一次尝试时找到与回调函数的实现条件匹配的元素,则它会停止搜索并返回布尔值true。在这种情况下,它不会遍历每个元素。