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