JavaScript 数组(Array) 方法

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。在这种情况下,它不会遍历每个元素。